Monitoring Memory with Powershell

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