我需要一个命令来让我终止一个进程树的进程。
例如notepad.exe是由资源pipe理器创build的。 如何终止explorer.exe进程树中的notepad.exe?
使用taskkill / IM <processname.exe>
/ T
从PsTools集尝试PsKill + PsList实用程序。
pslist -t
会给你一个进程树(在这里你可以找到notepad.exe
,它是explorer.exe
一个子进程,然后你可以使用pskill
来杀死指定的进程。
taskkill /F /IM notepad.exe
这将杀死所有的notepad.exe – 如果你想要一个方法来指定只杀死由foo.exe创建的notepad.exe,我不认为Windows命令行是足够强大的。
你可以使用tasklist来获得你想要的进程的进程ID,然后使用taskkill / F / PID来杀死它。
如今,您可以使用PowerShell来实现这一点:
$cimProcesses = Get-CimInstance -Query "select ProcessId, ParentProcessId from Win32_Process where Name = 'notepad.exe'" $processes = $cimProcesses | Where-Object { (Get-Process -Id $_.ParentProcessId).ProcessName -eq "explorer" } | ForEach-Object { Get-Process -Id $_.ProcessId } $processes.Kill()
或者优美的方式:
$cimProcesses = Get-CimInstance -Query "select ProcessId, ParentProcessId from Win32_Process where Name = 'notepad.exe'" $cimProcesses = $cimProcesses | Where-Object { (Get-Process -Id $_.ParentProcessId).ProcessName -eq "explorer" } $cimProcesses | ForEach-Object { taskkill /pid $_.ProcessId }