获取PID的用户名(ProcessId)

时间:2018-07-11 06:46:50

标签: powershell wmi pid

我有一个PID,我想为其检查其用户名。我知道我们可以使用GetOwner(),但这是Get-WmiObject Win32_Process的有效方法。我正在使用Get-WmiObject -Class Win32_PerfRawData_PerfProc_Process,无法获得用户名(根据我的在线搜索)。因此,我认为单独检查PID是解决此问题的唯一方法。

能否请您告诉我如何获取PID的用户名或在Win32_PerfRawData_PerfProc_Process中获取用户名?

1 个答案:

答案 0 :(得分:3)

正如该Technet文章中所述:Technet,您可以使用下面的代码。

在最后一行中,您可以将所需的过程放在get-process命令之后。

例如Get-Process outlook | select processname,Id,@{l="Owner";e={$owners[$_.id.tostring()]}}

$owners = @{}
gwmi win32_process |% {$owners[$_.handle] = $_.getowner().user}
Get-Process | select processname,Id,@{l="Owner";e={$owners[$_.id.tostring()]}}

花费的时间取决于当前正在运行的服务数量。 您的输出将类似于:

ProcessName      Id         Owner
-----------      --         -----
OUTLOOK          13128      UserName

希望有帮助。 此致。