Hi Ken I have tried it, and it only works with a domain/AD account not a local account. The machines I need to access are all in workgroup config. I am guessing that it is something to do with the WbemAuthenticationLevelPktPrivacy value, but I have tried several from the MSDN site and always get the following error: C:\Scripting\toys>wbem.pl Can't call method "Security_" on an undefined value at C:\Scripting\toys\wbem.pl line 27. Cheers for any advice Dave
________________________________ From: Ken Cornetet [mailto:ken.corne...@kimball.com] Sent: 24 March 2009 15:13 To: David Evans; perl-win32-users@listserv.ActiveState.com Subject: RE: WMI remote querying Try it like this: use strict; use Win32::OLE; use constant wbemFlagReturnImmediately => 0x10; use constant wbemFlagForwardOnly => 0x20; use constant WbemAuthenticationLevelPktPrivacy => 6; my $computer = "xxx"; my $admin = "yyy"; my $pwd = "zzz"; my $wbem = Win32::OLE->new('WbemScripting.SWbemLocator'); my $objWMIService = $wbem->ConnectServer($computer,"",$admin,$pwd); $objWMIService->Security_->{authenticationLevel} = WbemAuthenticationLevelPktPrivacy; my $colItems = $objWMIService->ExecQuery("SELECT * FROM Win32_OperatingSystem", "WQL", wbemFlagReturnImmediately | wbemFlagForwardOnly); foreach my $objItem (in $colItems) { print "ServicePackMajorVersion: $objItem->{ServicePackMajorVersion}\n"; print "ServicePackMinorVersion: $objItem->{ServicePackMinorVersion}\n"; print "\n"; } From: perl-win32-users-boun...@listserv.activestate.com [mailto:perl-win32-users-boun...@listserv.activestate.com] On Behalf Of David Evans Sent: Tuesday, March 24, 2009 8:21 AM To: perl-win32-users@listserv.ActiveState.com Subject: WMI remote querying Hi wonderful people I hope one of you can help me. I need to access WMI on a remote Win XP desktops and I am getting permission errors when using the local admin account on the remote box. Any ideas? CODE: use DBI; my $machine = 'server'; my $dbh = DBI->connect('dbi:WMI:'.$machine,'admin','admin'); print "$dbh\n"; my $sth = $dbh->prepare('SELECT * FROM Win32_OperatingSystem'); $sth->execute; while (my @row = $sth->fetchrow) { my $printer = $row[0]; printf "ServicePackMajorVersion is %s\n", $printer->{ServicePackMajorVersion}, $machine; printf "ServicePackMinorVersion is %s\n", $printer->{ServicePackMinorVersion}, $machine; }; ERROR: C:\Scripting\toys>wmi.pl Win32::OLE(0.1707) error 0x80070005: "Access is denied" after character 0 in "winmgmts:\\server\root\cimV2" at C:/Perl/site/lib/DBD/ WMI.pm line 95 Any help greatly appreciated. Thanks Dave PS My system is... Host: WinXP SP2 Perl: 5.8.8 Build 822 DBD::WMI 0.06 DBI 1.607
_______________________________________________ Perl-Win32-Users mailing list Perl-Win32-Users@listserv.ActiveState.com To unsubscribe: http://listserv.ActiveState.com/mailman/mysubs