如何通过脚本到变量的服务名称获取进程ID

E23*_*235 17 powershell process tasklist windows-7

我有服务命名WinDefend,它在进程上运行svchost.exe
有其他很多svchost.exe进程,我需要找到一种方法来获取它的ID.
当我跑步时,tasklist /svc我可以看到: 在此输入图像描述

我不知道怎么能得到它.
我找到了这个命令,但是当我尝试select "PID"它时,它给了我空列. 在此输入图像描述

我需要将流程的PID变为可变.

Mik*_*ray 23

tasklist只是返回文本,而不是具有您可以访问的属性的实际对象.您可以使用WMI来获取此信息:

$id = Get-WmiObject -Class Win32_Service -Filter "Name LIKE 'WinDefend'" | 
      Select-Object -ExpandProperty ProcessId

$process = Get-Process -Id $id
Run Code Online (Sandbox Code Playgroud)


wal*_*umi 8

$p=Tasklist /svc /fi "SERVICES eq windefend" /fo csv | convertfrom-csv
$p.PID
Run Code Online (Sandbox Code Playgroud)