首页 > 解决方案 > 获取 PID 的用户名(ProcessId)

问题描述

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

你能告诉我如何获得PID的用户名或里面的用户名Win32_PerfRawData_PerfProc_Process吗?

标签: powershellwmipid

解决方案


正如这篇技术网文章中所述: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

希望有帮助。亲切的问候。


推荐阅读