Here is one way to do it.

Code:
BREAK ON
DIM $Nul
$Nul = SetOption("Explicit", "On")
$Nul = SetOption("NoVarsInStrings", "On")
$Nul = SetOption("NoMacrosInStrings", "On")
$Nul = SetOption("wrapateol", "on")

DIM $RC, $Index
DIM $Computer, $Process

$Computer = @Wksta
$Process = "explorer.exe"

$RC = fnProcessFindName($Process, $Computer)
? "Computer " $Computer
? "StatusCode " @Error
? "Process IDs: " $RC[0]
? "Process Count: " $RC[1]
? "Process Time Total: " $RC[2]
? "Process Memory Total: " $RC[3]
?
FOR $Index = 0 TO UBound($RC[4])
? " Name: " $RC[4][$Index][0]
? " ID: " $RC[4][$Index][1]
? " Time: " $RC[4][$Index][2]
? " Memory: " $RC[4][$Index][3]
? " Parent PID: " $RC[4][$Index][4]
? " Executable Path: " $RC[4][$Index][5]
? " Command Line: " $RC[4][$Index][6]
? " Domain: " $RC[4][$Index][7]
? " User: " $RC[4][$Index][8]
? " ------------------------------------------"
NEXT

QUIT 0

;fnPing($Address, OPTIONAL $PingCount)

FUNCTION fnProcessFindName($ProcessNameIn, $ComputerName)
DIM $ErrorCode, $Nul, $oWMIService, $oItems, $oItem, $oMethod, $oOutParam
DIM $ProcessIDs, $ProcessCount, $ProcessTimeTotal, $ProcessMemoryTotal
DIM $aProcesses[0], $ProcessName, $ProcessID, $ProcessTime, $ProcessMemory
DIM $ProcessParentPID, $ProcessExecutablePath, $ProcessCommandLine
DIM $ProcessDomain, $ProcessUser

$ErrorCode = 0
$ProcessTime = 0
$ProcessMemory = 0
$ProcessCount = 0
$ProcessTimeTotal = 0
$ProcessMemoryTotal = 0
$aProcesses[0] = $ProcessName, $ProcessID, $ProcessTime, $ProcessMemory,
$ProcessParentPID, $ProcessExecutablePath, $ProcessCommandLine,
$ProcessDomain, $ProcessUser

$oWMIService = GetObject("winmgmts:\\" + $ComputerName + "\root\cimv2")
IF VarType($oWMIService) = 9
$oItems = $oWMIService.ExecQuery('Select * From Win32_Process where Name="' + $ProcessNameIn + '"',,48)
FOR EACH $oItem IN $oItems
$ProcessName = $oItem.Name
$ProcessID = $oItem.ProcessID
$ProcessTime = CInt((CDbl($oItem.UserModeTime) + CDbl($oItem.KernelModeTime)) / 10000000)
$ProcessMemory = CDbl($oItem.WorkingSetSize)/1024

$ProcessParentPID = $oItem.ParentProcessId
$ProcessExecutablePath = $oItem.ExecutablePath
$ProcessCommandLine = $oItem.CommandLine

$oMethod = $oItem.Methods_.Item("GetOwner")
$oOutParam = $oItem.ExecMethod_($oMethod.Name)
$ProcessDomain = $oOutParam.Domain
$ProcessUser = $oOutParam.User
IF $aProcesses[UBound($aProcesses)][0] <> ""
REDIM PRESERVE $aProcesses[UBound($aProcesses) + 1]
ENDIF
$aProcesses[UBound($aProcesses)] = $ProcessName, $ProcessID, $ProcessTime, $ProcessMemory,
$ProcessParentPID, $ProcessExecutablePath,
$ProcessCommandLine, $ProcessDomain, $ProcessUser
$ProcessIDs = $ProcessIDs + "" + CStr($oItem.ProcessID) + " "
$ProcessCount = $ProcessCount + 1
$ProcessTimeTotal = $ProcessTimeTotal + $ProcessTime
$ProcessMemoryTotal = $ProcessMemoryTotal + $ProcessMemory
NEXT
ELSE
$ErrorCode = 9
ENDIF
$fnProcessFindName = Left($ProcessIDs, -1), $ProcessCount, $ProcessTimeTotal, $ProcessMemoryTotal, $aProcesses
EXIT $ErrorCode
ENDFUNCTION

_________________________
Kelly