This script returns a list of Processes and memory sizes for a certain exe that run on a few machines.
Parameters to change:
Line 4. change computer names to suit.
Line 9. change ClientApp.exe to target your exe.
#Processes $ProcessList = @() $ComputerNames = @("Machine01", "Machine02", "Machine03") ForEach($Computer in $ComputerNames) { $Processes = Get-wmiobject -Class Win32_Process -ComputerName $Computer -Filter "name = 'ClientApp.exe'" ForEach ($Process in $Processes) { $obj = New-Object PSObject $obj | Add-Member -MemberType NoteProperty -Name Server -Value $Computer $obj | Add-Member -MemberType NoteProperty -Name Process -Value $Process.Name $obj | Add-Member -MemberType NoteProperty -Name Owner -Value $Process.GetOwner().User $obj | Add-Member -MemberType NoteProperty -Name OwnerName -Value (Get-ADUser $Process.GetOwner().User).Name $obj | Add-Member -MemberType NoteProperty -Name ProcessID -Value $Process.ProcessID $obj | Add-Member -MemberType NoteProperty -Name Mem -Value ($Process.WS / 1KB) $obj | Add-Member -MemberType NoteProperty -Name CommandLine -value $Process.CommandLine $obj | Add-Member -MemberType NoteProperty -Name CreationDate -value $Process.ConvertToDateTime($Process.CreationDate) $ProcessList += $obj } } $ProcessList | Sort-Object Mem -Descending | Format-Table -AutoSize