Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- use Win32::OLE 'in';
- use Win32::OLE::Const 'Active DS Type Library';
- $Win32::OLE::Warn = 3;
- @ARGV == 1 or die "geef exact 1 arg mee";
- $argument=shift;
- $RootObj = bind_object("RootDSE");
- $schemaClass = bind_object("cn=" . $argument . "," . $RootObj->get("schemaNamingContext"));
- $abstractClass = bind_object("schema/" . $argument);
- #kijken welke properties in de cache zitten en dus WEL ingevuld zijn.
- #deze properties moeten niet uigeschreven worden
- $schemaClass->GetInfo();
- %PropertyCache;
- for($i = 0; $i < $schemaClass->{PropertyCount}; $i++){
- $prop = $schemaClass->Item($i);
- $PropertyCache{$prop->{Name}} = undef;
- }
- #kijken welke properties het object allemaal kan hebben
- #de properties die in de cache zitten worden genegeerd
- foreach $prop (@{$abstractClass->{MandatoryProperties}}, @{$abstractClass->{OptionalProperties}}){
- next if exists $PropertyCache{$prop};
- print "syntax van $prop ophalen...\n";
- $abstractAttribuut = bind_object("schema/" . $prop);
- # print "syntaxt van $prop: $abstractAttribuut->{syntax}\n";
- next if $abstractAttribuut->{syntax} ne "INTEGER";
- # print "syntax van $prop is een $abstractAttribuut->{syntax}\n";
- # print "adspath van $prop $abstractAttribuut->{isSingleValued}\n";
- next unless $abstractAttribuut->{isSingleValued};
- print "syntax van $prop is een $abstractAttribuut->{syntax} en $abstractAttribuut->{isSingleValued}\n";
- }
- sub bind_object{
- $parameter=shift;
- $ip = "satan.hogent.be";
- $moniker = ( (substr( uc($parameter), 0, 7) ) eq "LDAP://" ? "" : "LDAP://$ip/" ) . $parameter;
- # print $moniker,"\n";
- $dso = Win32::OLE->GetObject("LDAP:");
- $user = "Interim A";
- return $dso->OpenDSObject($moniker, $user, $user, ADS_SECURE_AUTHENTICATION);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement