Get-Process 能夠獲取當(dāng)前運(yùn)行的所有進(jìn)程的列表,但是它不會(huì)返回進(jìn)程的所有者信息,如果在PowerShell查詢進(jìn)程的所有者信息,我們需要調(diào)用WMI服務(wù)。下面給出一個(gè)例子。
當(dāng)進(jìn)程對(duì)象傳遞給Get-ProcessOwner后,它會(huì)在原有的對(duì)象上追加一個(gè)“Owner”屬性,默認(rèn)這個(gè)屬性是隱藏的。你可以使用Selec-Object讓它顯示。
PS> Get-Process -Id $pid | Get-ProcessOwner | Select-Object -Property Name, ID, Owner
Name Id Owner
---- -- -----
powershell_ise 10080 TOBI2\Tobias
PS> Get-Process | Where-Object MainWindowTitle | Get-ProcessOwner | Select-Object -Property Name, ID, Owner
Name Id Owner
---- -- -----
chrome 13028 TOBI2\Tobias
devenv 13724 TOBI2\Tobias
Energy Manager 6120 TOBI2\Tobias
ILSpy 14928 TOBI2\Tobias
(...)
注意要查看所有進(jìn)程的信息,你需要讓PowerShell在管理員身份下運(yùn)行。否則你只能看到所有者是你自己的進(jìn)程,其它進(jìn)程的所有者顯示:“Access Denied”。而且這樣的信息相對(duì)來說也沒有什么意義。