Nothing in Event Logs (ran multiple times with all auditing turned on). 
Investigating MDAC Setup. :(

16 Nov 2004 14:21:07 -0700, Steven Manross wrote
> Works for 2k3 here...
> 
> Sounds like something's screwy on the 2k3 server.  Did you check the
> event log on the 2k3 server?
> 
> Steven
> 
> -----Original Message-----
> From: [EMAIL PROTECTED]
> [mailto:[EMAIL PROTECTED] On Behalf 
> Of jason Sent: Tuesday, November 16, 2004 9:46 AM To: perl-win32-
[EMAIL PROTECTED]
> Subject: OLE/ADO Error with Active Directory
> 
> I get the following error when I attempt to query Active Directory 
> on a Windows 2003 Server with my script (server is running MDAC 2.8):
> 
> Win32::OLE(0.1403) error 0x800401f9: "Error in the DLL" in 
> METHOD/PROPERTYGET "Properties" at C:\testad.pl line 17
> Can't use an undefined value as a HASH reference at C:\testad.pl line
> 17.
> 
> The script (below) works fine on Windows 2000 Server and Windows XP.
> 
> ###BEGIN SCRIPT###
> 
> #!/usr/bin/perl -w
> use strict;
> use Data::Dumper;
> use Win32::OLE;
> 
> sub enumerateServers {
>       my $ad_conn = Win32::OLE->new("ADODB.Connection");
>       my $ad_recs = Win32::OLE->new('ADODB.Recordset');
>         my $rootDSE = Win32::OLE->GetObject("LDAP://rootDSE";);
>         my $strADsPath = [EMAIL PROTECTED] ||
> $rootDSE->Get("DefaultNamingContext");
>       my $query = "LDAP://$strADsPath";;
>       my @computer_list;
>       my $userid = "domain\\account"; #Change account name to match a
> user 
> account on your domain
>       my $passwd = "password";        #Change account password to
> match a 
> user account on your domain
>       $ad_conn->{Provider} = ("ADsDSOObject");
>       $ad_conn->{ConnectionString} = "Active Directory Provider";
>       $ad_conn->Properties('User ID')->{Value} = $userid;
>       $ad_conn->Properties('Password')->{Value} = $passwd;
>       $ad_conn->Open;
>       $ad_recs = $ad_conn->Execute("
>               SELECT Name, userAccountControl
>               FROM '$query'
>               WHERE objectClass='computer'
>         ");
>         while (! $ad_recs->EOF) {
>           if ( ($ad_recs->Fields("userAccountControl")->Value & 2) !=
> 2 ) {
>               #if bit 2 is on in userAccountControl, then the account
> is 
> disabled.
>               #We only want enabled accounts.
>               push @computer_list,
> uc($ad_recs->Fields("Name")->Value);
>           }
>             $ad_recs->MoveNext;
>         }
>       @computer_list;
> }
> 
> print Dumper &enumerateServers();
> 
> ###END SCRIPT###
> 
> --
> Jason R. Cetina
> [EMAIL PROTECTED]
> 
> _______________________________________________
> Perl-Win32-Users mailing list
> [EMAIL PROTECTED]
> To unsubscribe: http://listserv.ActiveState.com/mailman/mysubs


--
Jason R. Cetina
[EMAIL PROTECTED]

_______________________________________________
Perl-Win32-Users mailing list
[EMAIL PROTECTED]
To unsubscribe: http://listserv.ActiveState.com/mailman/mysubs

Reply via email to