脚本专栏 
首页 > 脚本专栏 > 浏览文章

PowerShell查看进程的所属用户

(编辑:jimmy 日期: 2024/11/16 浏览:3 次 )

适用于所有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 "没有发现用户."
 }
 

上一篇:在cmd中直接运行PowerShell脚本文件的方法
下一篇:Powershell实现捕获系统内置EXE程序的异常
一句话新闻
微软与英特尔等合作伙伴联合定义“AI PC”:键盘需配有Copilot物理按键
几个月来,英特尔、微软、AMD和其它厂商都在共同推动“AI PC”的想法,朝着更多的AI功能迈进。在近日,英特尔在台北举行的开发者活动中,也宣布了关于AI PC加速计划、新的PC开发者计划和独立硬件供应商计划。
在此次发布会上,英特尔还发布了全新的全新的酷睿Ultra Meteor Lake NUC开发套件,以及联合微软等合作伙伴联合定义“AI PC”的定义标准。