获取 PID 的用户名 (ProcessId)

Get username for PID (ProcessId)

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

你能告诉我如何获取 PID 的用户名或在 Win32_PerfRawData_PerfProc_Process 中获取用户名吗?

正如这篇 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

希望对您有所帮助。 亲切的问候。