#!perl use strict; use warnings; use Win32::OLE; use DBI; # find the default naming context for the domain we are logged in my $rootDSE = Win32::OLE->GetObject("LDAP://rootDSE")->Get("defaultNam +ingContext") or die "could not get rootDSE"; print "rootDSE is $rootDSE\n"; # Open ADO connection to AD under current logged in user my $dbh = DBI->connect("DBI:ADO:Provider=ADSDSOObject") or die $DBI::e +rrstr; # We're looking for all user objects below the "test" OU my $query = "<LDAP://OU=test,${rootDSE}>;" # the search filter . "(objectCategory=user);" # You can use more criteria to filter on, e.g. # the following would only get user with a name st +arting with A #. "(&(objectCategory=user)(Name=A*));" # what properties we want . "Name,SAMAccountName;" # how deep we want to query, Subtree means we're i +nterested about # the content of all OU's below our start . "Subtree"; # prepare and exec our query my $sth = $dbh->prepare($query) or die $dbh->errstr; $sth->execute(); my @res; while ( my $rec = $sth->fetchrow_hashref() ) { print "$rec->{Name}: $rec->{SAMAccountName}\n"; } $sth->finish(); $dbh->disconnect();
In reply to Re: How to Enum windows ActiveDirectory OU objects
by Golo
in thread How to Enum windows ActiveDirectory OU objects
by blackadder
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |