Advertisement
Guest User

ldap_vraag1

a guest
Jan 11th, 2020
89
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Perl 1.46 KB | None | 0 0
  1. use Win32::OLE 'in';
  2. use Win32::OLE::Const 'Active DS Type Library';
  3. # $Win32::OLE::Warn = 3;
  4.  
  5. @classes = @ARGV;
  6.  
  7. $RootObj = bind_object("RootDSE");
  8. $SchemaClasses = bind_object($RootObj->get("schemaNamingContext"));
  9. $SchemaClasses->{filter} = ["attributeSchema"];
  10.  
  11. %attributes;
  12. foreach $attribute (in $SchemaClasses){
  13.     my $abstractAttribute = bind_object("schema/" . $attribute->{ldapdisplayname});
  14.     if(lc($abstractAttribute->{syntax}) eq "octetstring"){
  15.         # printf "%-15s - %s\n", "octetstring", $attribute->{ldapdisplayname};
  16.         $attributes{$attribute->{ldapdisplayname}} = undef;
  17.     }
  18.     if($attribute->{rangeUpper} && $attribute->{rangeUpper} == $attribute->{rangeLower}){
  19.         # printf "%-15s - %s\n", "ranges", $attribute->{ldapdisplayname};
  20.         $attributes{$attribute->{ldapdisplayname}} = undef;
  21.     }
  22. }
  23.  
  24. foreach $class (@classes){
  25.     my $abstractClass = bind_object("schema/" . $class);
  26.     print "classe $class:\n\n";
  27.     foreach $prop (@{$abstractClass->{MandatoryProperties}}, @{$abstractClass->{OptionalProperties}}){
  28.         next unless exists $attributes{$prop};
  29.         printf "%s\n", $prop;
  30.     }
  31.     print "-------------------------------\n";
  32. }
  33.  
  34. sub bind_object{
  35.     $parameter=shift;
  36.     $ip = "satan.hogent.be";
  37.     $moniker = ( (substr( uc($parameter), 0, 7) ) eq "LDAP://" ? "" : "LDAP://$ip/" ) . $parameter;
  38.     # print $moniker,"\n";
  39.     $dso = Win32::OLE->GetObject("LDAP:");
  40.     $user = "Interim A";
  41.     return $dso->OpenDSObject($moniker, $user, $user, ADS_SECURE_AUTHENTICATION);
  42. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement