in reply to How to Enum windows ActiveDirectory OU objects
#!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();
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^2: How to Enum windows ActiveDirectory OU objects
by blackadder (Hermit) on Mar 29, 2005 at 12:40 UTC |