Advertisement

05.13.2008 at 09:02AM PDT, ID: 23398361
[x]
Attachment Details

Perl Script using more than 1 wmi class

Asked by teamsj in Perl Programming Language

Tags:

I want to write a perl script using more than 1 wmi class, but I dont' know how.  As you can see in the snippet I have a script that uses "SELECT * FROM Win32_Processor" and I have a different script that uses "SELECT * FROM Win32_PhysicalMemory".  I want to join them for 1 output.  Start Free Trial
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
my @computers = ("M007");
open (MYFILE, '>>cpudata.txt');
foreach my $computer (@computers) {
   print MYFILE "\n";
   print MYFILE "==========================================\n";
   print MYFILE "Computer: $computer\n";
   print MYFILE "==========================================\n";
 
   my $objWMIService = Win32::OLE->GetObject("winmgmts:\\\\$computer\\root\\CIMV2") or die "WMI connection failed.\n";
   my $colItems = $objWMIService->ExecQuery("SELECT * FROM Win32_Processor", "WQL",
                  wbemFlagReturnImmediately | wbemFlagForwardOnly);
   
   foreach my $objItem (in $colItems) {
      print MYFILE"Manufacturer: $objItem->{Manufacturer}\n";
      print MYFILE"Name: $objItem->{Name}\n";
      print MYFILE"\n";
   }
}sub WMIDateStringToDate(strDate)
{
   return "blah";
}
 
** Next script*******************************************
use Win32::OLE('in');
 
use constant wbemFlagReturnImmediately => 0x10;
use constant wbemFlagForwardOnly => 0x20;
 
my @computers = ("M007");
foreach my $computer (@computers) {
   print "\n";
   print "==========================================\n";
   print "Computer: $computer\n";
   print "==========================================\n";
 
   my $objWMIService = Win32::OLE->GetObject("winmgmts:\\\\$computer\\root\\CIMV2") or die "WMI connection failed.\n";
   my $colItems = $objWMIService->ExecQuery("SELECT * FROM Win32_PhysicalMemory", "WQL",
                  wbemFlagReturnImmediately | wbemFlagForwardOnly);
 
   foreach my $objItem (in $colItems) {
      print "Capacity: $objItem->{Capacity}\n";
      print "Caption: $objItem->{Caption}\n";
      print "CreationClassName: $objItem->{CreationClassName}\n";
      print "DataWidth: $objItem->{DataWidth}\n";
      print "\n";
   }
}sub WMIDateStringToDate(strDate)
{
   return "blah";
}
[+][-]05.13.2008 at 09:30AM PDT, ID: 21556707

View this solution now by starting your 7-day free trial. Setting up your free trial is quick, easy, and secure. We will return you to this solution, unlocked, when you're done.

 

About this solution

Zone: Perl Programming Language
Tags: Perl
Sign Up Now!
Solution Provided By: sqd5597
Participating Experts: 1
Solution Grade: A
 
 
 
Loading Advertisement...
20080716-EE-VQP-32 / EE_QW_2_20070628