in reply to Re: Re: Re: Re: ADSI: Getting a full list of users from a w2k domain
in thread ADSI: Getting a full list of users from a w2k domain
My thought is that in VB, you are lucky enough to be able to set the PageSize Property ahead of time, and on execution, the properties are applied when the object is returned. I've come to this (perhaps erroneous) conclusion because if you create the command object and then enumerate through the Command Properties before execution, you get back an empty set.use Win32::OLE 'in'; my $ADO = Win32::OLE->new("ADODB.Connection"); $ADO->{Provider} = "ADsDSOObject"; $ADO->Open("ADSI Provider"); my $ADOCmd=Win32::OLE->new("ADODB.Command"); $ADOCmd->{ActiveConnection}=$ADO;#new $ADOCmd->{CommandText}="<$ADSPath>;(objectClass=User);samAccountNam +e,HomeDirectory;SubTree"; my $ADOrs = Win32::OLE->new("ADODB.RecordSet"); $ADOrs->PageSize->{Value}=10000; $ADOrs->Open({Source=>$ADOCmd, ActiveConnection=>$ADO,}) until ($ADOrs->EOF){ my $homeDir=lc($ADOrs->Fields(1)->{Value}); if ($homeDir=~/^\\\\mf/){ my $account=lc($ADOrs->Fields(0)->{Value}); print OUT "$account\t$homeDir\n"; } $ADOrs->MoveNext; } $ADOrs->Close; $ADO->Close; print "Wrote Accounts\n";
C-.
---
Flex the Geek
|
|---|