use Win32; use Win32::OLE; #$machine= shift || Win32::NodeName(); my $machine="WH2851030605387"; #The office of another PC $class = "WinMgmts:{impersonationLevel=impersonate}!//$machine"; $wmi = Win32::OLE->GetObject($class); $plist = $wmi->InstancesOf("Win32_Process"); $~ = PROC_LIST; write; $~ = PROC_INF; $n = 0; foreach $Proc (Win32::OLE::in( $plist )){ write; $n++; } print " ===========================\n"; print " -> Processes number : $n <-\n"; print " ==========================="; # ----------------------------------------------------------------------------- format PROC_LIST = @||| @|||||||||||||||| @||||||| "PID", "Process Name", " Memory" ---- ----------------- -------- . format PROC_INF = @<<< @<<<<<<<<<<<<<<<< @<<<<<<< $Proc->{'ProcessID'},$Proc->{'Name'}, $Proc->{'PeakWorkingSetSize'} .