请求协助:使用PowerShell列出无关联服务的进程及其PID
解决无关联服务进程的列出问题
嘿,我来帮你搞定这个需求!你之前的命令没成功,主要是对进程对象的属性和筛选语法理解有点偏差,我给你梳理一下正确的实现方式:
PowerShell 方法
PowerShell 里的 Get-Process 返回的进程对象,关联服务是存在 Services 属性里的——这是一个集合,没有关联服务的进程,这个集合的长度是0,而不是有个叫Status的属性等于"N/A"。所以正确的过滤命令应该是:
Get-Process | Where-Object { $_.Services.Count -eq 0 } | Select-Object Name, Id
Where-Object { $_.Services.Count -eq 0 }:筛选出没有关联服务的进程Select-Object Name, Id:只显示进程名称和PID(Id是进程的PID属性)
如果需要看更多信息,比如进程路径,只要在Select-Object后面加上对应的属性就行,比如Name, Id, Path。
Tasklist 方法
你之前用tasklist的时候筛选条件写反了——你要找的是服务项为"N/A"的进程,应该用eq(等于)而不是ne(不等于),正确命令是:
tasklist /svc /FI "SERVICES eq N/A"
/svc:让输出显示每个进程关联的服务/FI "SERVICES eq N/A":筛选出服务列显示为"N/A"的进程
小提示
如果有些进程没显示出来,试试用管理员权限运行PowerShell或者命令提示符,因为部分系统进程需要更高权限才能获取完整的服务关联信息。
内容的提问来源于stack exchange,提问作者Johnnyq7
相关产品推荐
相关产品推荐

