CIM perl sample code
The foundations for Manageability in Windows is Windows Management Instrumentation (WMI; formerly WBEM) and WMI extensions for Windows Driver Model (WDM).
ActiveXperts Network Monitor provides the ability to build monitor check routines based on WMI. ActiveXperts has collected more than a hundred WMI samples. You can use these samples as a base for new check routines you can write yourself. The CIM WMI class can be used in ActiveXperts Network Monitor to monitor your servers.
Sample Code
use Win32::OLE('in');
my $computer = ".";
my $objWMIService = Win32::OLE->GetObject("winmgmts:\\\\$computer\\root\\CIMV2") or die "WMI connection failed.\n";
my $colItems = $objWMIService->ExecQuery("SELECT * FROM CIM_Action", "WQL");
foreach my $objItem (in $colItems) {
print "ActionID: $objItem->{ActionID}\n";
print "AppID: $objItem->{AppID}\n";
print "Argument: $objItem->{Argument}\n";
print "Caption: $objItem->{Caption}\n";
print "CLSID: $objItem->{CLSID}\n";
print "Context: $objItem->{Context}\n";
print "DefInprocHandler: $objItem->{DefInprocHandler}\n";
print "Description: $objItem->{Description}\n";
print "Direction: $objItem->{Direction}\n";
print "FileTypeMask: $objItem->{FileTypeMask}\n";
print "Insertable: $objItem->{Insertable}\n";
print "Name: $objItem->{Name}\n";
print "ProgID: $objItem->{ProgID}\n";
print "RemoteName: $objItem->{RemoteName}\n";
print "SoftwareElementID: $objItem->{SoftwareElementID}\n";
print "SoftwareElementState: $objItem->{SoftwareElementState}\n";
print "TargetOperatingSystem: $objItem->{TargetOperatingSystem}\n";
print "Version: $objItem->{Version}\n";
print "VIProgID: $objItem->{VIProgID}\n";
print "\n";
print "########\n";
print "\n";
}
