logo
Author: ksurent
Description: Get Property: Value pairs from OLE object
Language: Perl
#!perl

use strict;
use warnings;

use Win32::OLE 'in';
use Data::Dumper 'Dumper'; 

my $computer = shift || usage();
my $class = shift || usage();
my $ns = shift || '\\root\\CIMV2';

my $wmi = Win32::OLE->GetObject('winmgmts:{impersonationLevel=Impersonate}!\\\\' . $computer . $ns)
	|| die Win32::OLE->LastError;
my $coll = $wmi->InstancesOf($class); 

foreach(in $coll) {
	foreach(in $_->{Properties_}) {
		print $_->{Name}, ': ';
		
		my $val = $_->{Value} || '<undef>';
		print ref $val eq 'ARRAY' ? Dumper($val) : $val . "\n"
	}
}

sub usage {
	exit print qq{
Usage: perl $0 <computer name> <OLE class> [OLE namespace]
E.g.: perl $0 manager10 Win32_ComputerSystem

Note: default namespace is \\root\\CIMV2
WMI classes list: http://msdn.microsoft.com/en-us/library/aa394554(VS.85).aspx
	}
}
Recent pastes:
n4n (Plain Text)
n4n (Perl)
alexITmore (Delphi)
alexITmore (Delphi)
ksurent (Perl)
ksurent (Perl)
ksurent (SQL)
cra (Perl)
cra (C++)
ksurent (Perl)
n0xi0uzz (Bash)
ksurent (Perl)
ksurent (Perl)
ksurent (Perl)
biophreak (Perl)
ksurent (Perl)
Gum (C++)
n0xi0uzz (PHP)
netsago.paste.β © 2008 Neunica