PowerShell查看进程的所属用户
适用于所有WindowsPowerShell版本
查看一个特定进程的所有者用户是谁,有多少个改进程的实例,可以尝试下面的代码:
$ProcessName='explorer.exe' (Get-WmiObject-Query"select*fromWin32_Processwherename='$ProcessName'").GetOwner().User
注意:有许多不同的途径可以获取当前登陆的用户,但是由于你的操作系统版本的不同,所以方法不尽相同。如果使用图形化用户界面还好,但是如果是非用户界面Core服务器,脚本可能不能检测到当前连接主机的用户。
上面的例子返回了所有的“explorer.exe”进程的所有者。如果你拥有管理员权限并且远程登陆了,用户列表中还会可能会包括非活动用户。因为每个桌面上打开的explorer.exe可能属于不同的会话,不同的用户。
如果使用了Sort-Object命令,可以非常容易排除重复项。
$ProcessName='explorer.exe' (Get-WmiObject–Query"select*fromWin32_Processwherename='$ProcessName'").GetOwner().User| Sort-Object-Unique
并且,如果你更改了要查看的进程的名称,还会发现其它有趣的事情。下面的脚本会列出,当前通过PowerShell远程管理连接到你机器的用户:
$ProcessName='wsmprovhost.exe'
try
{
(Get-WmiObject-Query"select*fromWin32_Processwherename='$ProcessName'").GetOwner().User|
Sort-Object-Unique
}
catch
{
Write-Warning"没有发现用户."
}
热门推荐
3 祝福语简短的微信
10 幼儿祝福语大全简短贺卡
11 感谢教官文案祝福语简短
12 鼠年同事祝福语简短创意
13 元旦祝福语 简短独特群发
14 妈咪跟我生日祝福语简短
15 给儿子新婚祝福语简短
16 伴娘祝福语长文案简短
17 恭喜高考完祝福语简短
18 生日祝福语送老公简短