use Win32::OLE('in'); use Win32::OLE::Variant qw(:DEFAULT nothing); $server = ""; $lobj = Win32::OLE->new('WbemScripting.SWbemLocator') or die "can't create locator:".Win32::OLE->LastError()."\n"; $lobj->{Security_}->{impersonationlevel}= 3 ; $sobj = $lobj->ConnectServer($server, 'root\cimv2') or die "can't create server object:".Win32::OLE->LastError()."\n"; $procschm = $sobj->Get('Win32_Process'); $username = new Win32::OLE::Variant(OLE::VT_BSTR, " " ); $domainname = new Win32::OLE::Variant(OLE::VT_BSTR, " " ); foreach $process (in $sobj->InstancesOf("Win32_Process")){ $i=0; #$user=\$username; #$domain=\$domainname; #$userref = \$user; #$domainref = \$domain; $process->GetOwner(\$username,\$domainname); print $process->{Name}." is pid #".$process->{ProcessID}." User Time ".$process->{UserModeTime}."\n"; print "Owner \\\\$domainname\\ $username\n"; }