PowerShell 查找进程的所有者和会话 2


Get-Process 可以返回当前正在运行的进程的许多信息,但是它不能返回进程的所有者和当前用户登录的会话信息。幸好有一个内置的控制台命令tasklist可以提供这些信息。我们可以调用tasklist将进程信息输出为以逗号分割的文本数据,然后再使用ConvertFrom-Csv转换成对象数组,这样就可以过滤出我们需要的数据了。

PS D:\> tasklist /V /FO CSV | ConvertFrom-Csv  | Select-Object -Property "映像名称","会话#   ","会话名      ","用户名   " | Format-Table -AutoSize

映像名称                             会话#    会话名       用户名
--------                             -------- ------------ ---------
System Idle Process                  0        Services     NT AUTHORITY\SYSTEM
System                               0        Services     暂缺
smss.exe                             0        Services     暂缺
csrss.exe                            0        Services     暂缺
wininit.exe                          0        Services     暂缺
csrss.exe                            1        Console      暂缺
winlogon.exe                         1        Console      暂缺
services.exe                         0        Services     暂缺

唯一不方便的是,这些属性的名称,被本地化了。也就是说属性的名称可能在不同的语言的机器上显示不同,例如中文机器上,会话名属性后面,竟然跟了这么多空格,最好能先把空格剃掉。

PS D:\> tasklist /V /FO CSV  |  foreach { $_.Replace(" ","") } | ConvertFrom-Csv | select "映像名称","PID","会话名","会话#","用户名","窗口标题"| ft -AutoSize
WindowsLiveWriter.exe                5524 Console  1     mosser-PC\mosser PowerShell查找进程的所有者和会话-WindowsLiveWriter
powershell.exe                       6772 Console  1     mosser-PC\mosser WindowsPowerShell
conhost.exe                          5692 Console  1     mosser-PC\mosser CicMarshalWnd
notepad.exe                          6888 Console  1     mosser-PC\mosser 无标题-记事本
SogouCloud.exe                       7384 Console  1     mosser-PC\mosser 暂缺
tasklist.exe                         6060 Console  1     mosser-PC\mosser 暂缺
WmiPrvSE.exe                         7196 Services 0     暂缺               暂缺

原文链接:http://powershell.com/cs/blogs/tips/archive/2012/10/04/finding-process-owners-and-sessions.aspx

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

关于 Mooser Lee

我是一个Powershell的爱好者,创建了PowerShell中文博客,热衷于Powershell技术的搜集和分享。本站部分内容来源于互联网,不足之处敬请谅解,并欢迎您批评指正。

发表评论

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

2 条评论 “PowerShell 查找进程的所有者和会话