Powershell查询进程的拥有者


支持所有版本PS。

要找出所有在线的用户,只需要查看一个特殊进程运行了多少个。例如:

$ProcessName = 'explorer.exe'

(Get-WmiObject -Query "select * from Win32_Process where name='$ProcessName'").GetOwner().User 

注意,有很多不同的办法去获取当前登录的用户或依靠你们当前的使用环境,这里介绍的方法也有局限性,它必须确保用户使用的图形界面,在命令式服务器上,没有图形界面,这个脚本将不能查询。
这个例子返回了当前电脑所有EXPLORER.exe进程的用户,如果你是通过管理员远程连接,可以打印出在线用户清单,因为每个用户都会有一个自己的explorer.exe进程。

接着你可以改变进程名字,来检测当前通过远程连接你电脑的用户:

$ProcessName = 'wsmprovhost.exe'

try
{

  (Get-WmiObject -Query "select * from Win32_Process where name='$ProcessName'").GetOwner().User |
  Sort-Object -Unique
}
catch
{
  Write-Warning "No user found."
} 

原文地址:Finding Process Owners

本文链接: https://www.pstips.net/finding-process-owners-2.html
请尊重原作者和编辑的辛勤劳动,欢迎转载,并注明出处!

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注