Powershell
使用 Powershell,如何獲取特定使用者擁有的程序的 ID?
使用 Powershell,我想做 Unix 的等價物
ps -auxc | grep Emacs kill -9 364
(假設 365 是第一個命令告訴我的 pid。)
我怎麼做?我發現讓 Powershell 告訴我一個程序的所有者和我嘗試的方式非常困難,獲取一個 wmi-object win32_process 然後將其放入名為“explorer.exe”的程序列表中 剛剛啟動了很多 explorer.exe實例。
我通過快速Google找到了這個:
$owners = @{} gwmi win32_process |% {$owners[$_.handle] = $_.getowner().user} get-process | select processname,Id,@{l="Owner";e={$owners[$_.id.tostring()]}}
似乎按要求返回使用者。您可能可以從那裡開始。希望有幫助。
使用 PowerShell 4 及更高版本,您可以執行以下操作:
Get-Process -IncludeUserName | Where-Object {$_.UserName -match "peter" -and $_.ProcessName -eq "Notepad"} | Stop-Process -Force
或使用別名時:
ps -IncludeUserName | ? {$_.UserName -match "peter" -and $_.ProcessName -eq "Notepad"} | spps -Force
不像 Unix 那樣短,但比舊的 PowerShell 版本好。