在命令行中终止进程树的进程(Windows)

我需要一个命令来让我终止一个进程树的进程。

例如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 }