Advertisement
Guest User

Untitled

a guest
Jan 11th, 2020
81
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Perl 1.70 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. @ARGV == 1 or die "geef exact 1 arg mee";
  6. $argument=shift;
  7. $RootObj = bind_object("RootDSE");
  8. $schemaClass = bind_object("cn=" . $argument . "," . $RootObj->get("schemaNamingContext"));
  9. $abstractClass = bind_object("schema/" . $argument);
  10.  
  11. #kijken welke properties in de cache zitten en dus WEL ingevuld zijn.
  12. #deze properties moeten niet uigeschreven worden
  13. $schemaClass->GetInfo();
  14. %PropertyCache;
  15. for($i = 0; $i < $schemaClass->{PropertyCount}; $i++){
  16.     $prop = $schemaClass->Item($i);
  17.     $PropertyCache{$prop->{Name}} = undef;
  18. }
  19.  
  20. #kijken welke properties het object allemaal kan hebben
  21. #de properties die in de cache zitten worden genegeerd
  22. foreach $prop (@{$abstractClass->{MandatoryProperties}}, @{$abstractClass->{OptionalProperties}}){
  23.     next if exists $PropertyCache{$prop};
  24.     print "syntax van $prop ophalen...\n";
  25.     $abstractAttribuut = bind_object("schema/" . $prop);
  26.     # print "syntaxt van $prop: $abstractAttribuut->{syntax}\n";
  27.     next if $abstractAttribuut->{syntax} ne "INTEGER";
  28.     # print "syntax van $prop is een $abstractAttribuut->{syntax}\n";
  29.     # print "adspath van $prop $abstractAttribuut->{isSingleValued}\n";
  30.     next unless $abstractAttribuut->{isSingleValued};
  31.     print "syntax van $prop is een $abstractAttribuut->{syntax} en $abstractAttribuut->{isSingleValued}\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