Powershell – With Powershell, how can I get the id of a process owned by a specific user

killpowershellprocess

Using Powershell, I want to do the equivalent of Unix

ps -auxc | grep Emacs

kill -9 364

(Assuming 365 was the pid the first command told me.)

How do I do that? I find it incredibly hard to get Powershell to tell me the owner of a process and the way I tried, getting a wmi-object win32_process and then make that into a list of processes named "explorer.exe" just started lots of explorer.exe instances.

Best Answer

I found this with a quick google:

$owners = @{}
gwmi win32_process |% {$owners[$_.handle] = $_.getowner().user}

get-process | select processname,Id,@{l="Owner";e={$owners[$_.id.tostring()]}}

seems to return users as requested. You can probably proceed from there. Hope that helps.