2011-04-10 94 views

回答

2

尝试从PsTools set PsKill + PsList实用程序。

pslist -t会给你一个进程树(在这里你可以找到notepad.exe这是explorer.exe的子进程。然后你可以使用pskill杀死与指定ID的过程。

+3

你没有读我的问题妥善 – Peter 2011-04-10 21:26:18

7

使用的taskkill/IM <processname.exe>/T

+0

你在哪里指定此命令父进程? – Peter 2011-04-10 19:59:53

+0

那不是我想要做的 – Peter 2011-04-10 20:09:18

+0

:)它被指定,但隐藏,因为它不被视为代码 – 2013-05-01 17:52:28

1
taskkill /F /IM notepad.exe 

这将杀死所有的notepad.exe的 - 如果你想一个方法来指定只杀死这是由foo.exe的创建或因此,我不认为Windows命令行是足够强大的notepad.exe的这个。

您可以使用tasklist来获取您想要定位的进程的进程ID,然后使用taskkill/F/PID来杀死它。

0

如今,你可以使用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 }