Is there a limit on the number of record when doing a AD query with LDAP? I am getting only 1000 records from this script. We have more than 2000+ users in our AD. Any idea how to increase the limit to get everything?
use Win32::OLE; my $RootDSE = Win32::OLE->GetObject("LDAP://RootDSE"); $dc = $RootDSE->Get("DnsHostName"); print "$dc\n"; query_ldap("<LDAP://" . $dc . ">;(&(objectclass=User)(manager=*));displayname,distinguishedname;subtree",$objects); print "recordcount = ".$objects->{RecordCount}."\n"; while (!$objects->{EOF}) { getattributes($dc,$objects->Fields("distinguishedname")->{Value}); $objects->MoveNext(); } sub query_ldap { my $ldap_query = $_[0]; my $error_num; my $error_name; my $RS; my $Conn = Win32::OLE->new("ADODB.Connection"); if (Win32::OLE->LastError() != 0) { print "Failed creating ADODB.Connection object (".Win32::OLE->LastError().")\n -> $ldap_query\n"; return 0; } $Conn->{'Provider'} = "ADsDSOObject"; if (Win32::OLE->LastError() != 0) { print "Failed setting ADODB.Command Provider (".Win32::OLE->LastError().")\n -> $ldap_query\n"; return 0; } $Conn->{Open} = "Perl Active Directory Query"; my $Cmd = Win32::OLE->new("ADODB.Command"); if (Win32::OLE->LastError() != 0) { print "Failed creating ADODB.Command object (".Win32::OLE->LastError().")\n -> $ldap_query\n"; return 0; } $Cmd->{CommandText} = $ldap_query; $Cmd->{Properties}->{"Page Size"} = 99; $Cmd->{ActiveConnection} = $Conn; $RS = $Cmd->Execute(); if (Win32::OLE->LastError() != 0) { print "Failed Executing ADODB Command object (".Win32::OLE->LastError().")\nExecuting ADODB Command -> $ldap_query\n"; return 0; } else { $_[1] = $RS; return 1; } } sub getattributes { my $dc = $_[0]; my $dn = $_[1]; my $adsuser = Win32::OLE->GetObject("LDAP://$dc/$dn") || die ("Can't find user: ".Win32::OLE->LastError()."\n"); print "$adsuser->{cn}\t"; print "$adsuser->{EmailAddress}\t"; print "$adsuser->{department}\t"; print "$adsuser->{PhysicalDeliveryOfficeName}\t"; print " Manager: $adsuser->{Manager}\n"; }
_______________________________________________ Perl-Win32-Admin mailing list Perl-Win32-Admin@listserv.ActiveState.com To unsubscribe: http://listserv.ActiveState.com/mailman/mysubs