欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

PowerShell查看进程的所属用户

程序员文章站 2022-07-05 10:27:01
适用于所有windows powershell 版本 查看一个特定进程的所有者用户是谁,有多少个改进程的实例,可以尝试下面的代码: 复制代码 代码如下: $p...

适用于所有windows powershell 版本

查看一个特定进程的所有者用户是谁,有多少个改进程的实例,可以尝试下面的代码:

复制代码 代码如下:

$processname = 'explorer.exe'
(get-wmiobject -query "select * from win32_process where name='$processname'").getowner().user

注意:有许多不同的途径可以获取当前登陆的用户,但是由于你的操作系统版本的不同,所以方法不尽相同。如果使用图形化用户界面还好,但是如果是非用户界面core服务器,脚本可能不能检测到当前连接主机的用户。


上面的例子返回了所有的“explorer.exe”进程的所有者。如果你拥有管理员权限并且远程登陆了,用户列表中还会可能会包括非活动用户。因为每个桌面上打开的 explorer.exe可能属于不同的会话,不同的用户。

如果使用了 sort-object 命令,可以非常容易排除重复项。

复制代码 代码如下:

$processname = 'explorer.exe'
 (get-wmiobject –query "select * from win32_process where name='$processname'").getowner().user |
 sort-object -unique
 

并且,如果你更改了要查看的进程的名称,还会发现其它有趣的事情。下面的脚本会列出,当前通过powershell远程管理连接到你机器的用户:

复制代码 代码如下:

$processname = 'wsmprovhost.exe'
 try
 {
 (get-wmiobject -query "select * from win32_process where name='$processname'").getowner().user |
 sort-object -unique
 }
 catch
 {
 write-warning "没有发现用户."
 }