Beefy Boxes and Bandwidth Generously Provided by pair Networks
There's more than one way to do things

Physical memory on remote machine

by mjg (Beadle)
on Mar 27, 2006 at 23:19 UTC ( #539578=sourcecode: print w/replies, xml ) Need Help??
Category: NT Admin
Author/Contact Info Mark Gardner
Description: A short example of WMI and Win32::OLE to get info from another server. Note that the hostname needs to be laundered or Win32::OLE will cry.
#!perl -wT

use Win32::OLE qw(in);
use Regexp::Common;

my $hostname = shift @ARGV || '.';
my $locator = Win32::OLE->new('WbemScripting.SWbemLocator')
  or die "Cannot access local WMI locator: ", Win32::OLE->LastError;

if ($hostname =~ /^$RE{net}{domain}{-keep}$/) {
    $hostname = $1;
} else {
    die "$hostname has insecure data, can't continue";
my $services = $locator->ConnectServer($hostname, 'root/cimv2')
  or die "Cannot access remote WMI services: ", Win32::OLE->LastError;

my $memory = 0;
$memory += $_->{Capacity} foreach in
  $services->ExecQuery("select * from Win32_PhysicalMemory");
print "$hostname has ", $memory/1024/1024/1024, " GiB\n";
Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: sourcecode [id://539578]
and all is quiet...

How do I use this? | Other CB clients
Other Users?
Others perusing the Monastery: (2)
As of 2016-12-09 05:21 GMT
Find Nodes?
    Voting Booth?
    On a regular basis, I'm most likely to spy upon:

    Results (148 votes). Check out past polls.