2011-04-10 34 views

Respuesta

2

Pruebe las utilidades PsKill + PsList desde PsTools set.

pslist -t le dará un árbol de procesos (aquí se puede encontrar notepad.exe que es un proceso hijo del explorer.exe. A continuación, puede utilizar pskill para matar el proceso con id especificado.

+3

que aún no ha leído mi pregunta correctamente – Peter

7

Uso taskkill/IM <processname.exe>/T

+0

lugar en el que se especifica el proceso padre en este comando? – Peter

+0

Eso no es lo que quiero hacer en absoluto – Peter

+0

:) fue especificado pero escondido, porque no está puesto como código –

1
taskkill /F /IM notepad.exe 

Esto mataría a todos de notepad.exe - si quieres una manera de especificar sólo para matar de notepad.exe que fueron creados por foo.exe más o menos, no creo que las líneas de comandos de Windows son lo suficientemente potente como para esto.

Puede utilizar la lista de tareas para obtener la identificación del proceso del proceso al que desea apuntar y luego usar taskkill/F/PID para eliminarla.

0

Hoy en día, se puede hacer esto con 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() 

O la forma elegante:

$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 } 
Cuestiones relacionadas