我有一个PID,我想为其检查其用户名。我知道我们可以使用GetOwner()
,但这是Get-WmiObject Win32_Process
的有效方法。我正在使用Get-WmiObject -Class Win32_PerfRawData_PerfProc_Process
,无法获得用户名(根据我的在线搜索)。因此,我认为单独检查PID是解决此问题的唯一方法。
能否请您告诉我如何获取PID的用户名或在Win32_PerfRawData_PerfProc_Process
中获取用户名?
答案 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
希望有帮助。 此致。