Have you installed WMI for Windows NT ?
Solli
De: [EMAIL PROTECTED] em 04/06/2003 11:44
ZE2
Para: <[EMAIL PROTECTED]>
cc:
Assunto: Win32::OLE
Hi experts
A little time ago one of you send the following script :
***************************************************************************************************************
use Getopt::Long;
use Pod::Usage;
use Win32::OLE;
my ($class) = "Win32_Process";
# Bomb out completely if COM engine encounters any trouble.
Win32::OLE->Option ('Warn' => 3);
# Get a handle to the SWbemServices object of the machine.
my $computer = Win32::OLE->GetObject (exists $opts{'remote'}
������������������������������������� ? "WinMgmts://$opts{'remote'}/"
������������������������������������� : 'WinMgmts:');
# Get the SWbemObjectSet of all objects of the class.
my $instances_set = $computer->InstancesOf ($class);
# Convert set to Perl array.
my @instances = Win32::OLE::Enum->All ($instances_set);
# Display all properties of an object.
sub dump_obj ($) {
��� my ($obj) = @_;
��� # Get set of properties of the class.
��� my $props_set = $obj->{'Properties_'};
��� # Convert set to Perl array.
��� my @props = Win32::OLE::Enum->All ($props_set);
�$test = 0;
��� foreach my $prop (@props)
������� my $name = $prop->{'Name'};
������� printf "%32s ", $name;
��my $value;
������� if ($prop->{'IsArray'})
����������� $value = '<array>';
������� else
����������� $value = $prop->{'Value'};
����������� defined $value
��������������� or $value = '<undefined>';
������� print "$value\n";
��if (($name eq "Name")&&($value eq "wfica32.exe")) {
���$test = 1;
��}
��if (($test == 1)&&($name eq "ProcessId")) {
���$result = $value;
��}
�return($result);
}
foreach my $instance (@instances) {
��� $res = dump_obj ($instance);
��� print "\n";
�push(@result, $res);
}
print @result;
exit 0;
********************************************************************************************************
It works very fine on my computer (workstation Win 2000), but as soon as I
run it on a server of my network (Nt4 server), it returns Win32::OLE
errors (lines in red)
WIn32::OLE(0.1601) error 0x800401e4 "syntaxe non valide" after caracter 0
in "WinMgmts:", eval{...} called
Does anyone have ideas about it ?? Does it come from a difference of
classes (Win32_Process) in the 2 OS or else???
Thanks so much...
Tamanho do Documento: 6,08 Kbytes Limite = 1200 Kbytes
_______________________________________________
Perl-Win32-Admin mailing list
[EMAIL PROTECTED]
To unsubscribe: http://listserv.ActiveState.com/mailman/mysubs