use Win32::OLE('in'); $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'); foreach $process (in $sobj->InstancesOf("Win32_Process")){ #haved tryed this too #$user=""; #$domain=""; #$userref=\$user; #$domainref=\$domain; @user=""; @domain=""; #doesn't work either #$process->GetOwner($userref,$domainref); $process->GetOwner(@user,@domain); print $process->{Name}." is pid #".$process->{ProcessID}." User Time ".$process->{UserModeTime}."\n"; print "Owner \\\\ ".@domain."\\ ".@user."\n"; }