Beefy Boxes and Bandwidth Generously Provided by pair Networks
go ahead... be a heretic

Re: How to Enum windows ActiveDirectory OU objects

by FitTrend (Pilgrim)
on Mar 07, 2005 at 17:59 UTC ( #437275=note: print w/replies, xml ) Need Help??

in reply to How to Enum windows ActiveDirectory OU objects

I've used Win32::OLE and Win32::OLE::Enum to grab WMI information. As for enumerating your output, what are you trying to accomplish? I'd tackle this differently based on if you were printing a tree menu of the data, or simply reporting on it.

Either way I've included a basic example of grabbing a CPU value from WMI. This script contains more source the necessary, to assist with learning.

#!perl #Change These Variables (Leave all variables BLANK if connecting to lo +cahost)# $server=""; $remote_user=""; $remote_pass=""; use Win32::OLE qw(in with); use Win32::OLE::Enum; Win32::OLE->Option(Warn => 0); ##WMI Connect## $WMI = Win32::OLE->new('WbemScripting.SWbemLocator'); if(!$WMI){ print Win32::OLE->LastError(); exit; } $Services = $WMI->ConnectServer($server, "root/cimv2", $remote_user, $ +remote_pass); if(!$Services){ $err_tmp_raw=Win32::OLE->LastError(); $err_tmp=Win32::OLE->LastError(); $err_tmp=~s/\'/\\'/g; $err_tmp=~s/\"/\\"/g; $err_tmp='Access Denied' if($err_tmp=~m/denied/i); $err_tmp='WMI Not Installed' if($err_tmp=~m/class not registered/i +); $err_tmp='RPC Server Unavailable' if($err_tmp=~m/rpc server is una +vailable/i); print "$err_tmp\n"; print Win32::OLE->LastError(); exit; } my $Processor_set = $Services->InstancesOf("Win32_Processor"); foreach my $object (Win32::OLE::Enum->All($Processor_set)){ print "CPU: $object->{'caption'}\n"; print "CPU Utilization: $object->{'LoadPercentage'}\n"; }

Hope this helps.

Log In?

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

How do I use this? | Other CB clients
Other Users?
Others romping around the Monastery: (2)
As of 2018-05-25 00:30 GMT
Find Nodes?
    Voting Booth?