#windows #command-line #kill
#Windows #командная строка #уничтожить
Вопрос:
Мне нужна команда, которая позволит мне завершить процесс дерева процессов.
Например, notepad.exe
был создан Explorer. Как бы мне завершить процесс notepad.exe
в explorer.exe
дереве процессов?
Ответ №1:
Этот ответ не совсем подходит для этого случая, но он может быть полезен для людей, ищущих, как уничтожить все дерево процессов. Нам нужно объединить некоторые ответы здесь, чтобы получить правильный результат: завершите дерево процессов и запустите его принудительно.
taskkill /IM "<process-name>" /T /F
Для некоторых процессов вам необходимо запустить команду в консольном приложении с правами администратора.
Ответ №2:
Используйте taskkill /IM <processname.exe> /T
.
Комментарии:
1. Это совсем не то, что я хочу делать
2. 🙂 это было указано, но скрыто, потому что оно не помещено в виде кода
3. Разве это не убило бы все notepad.exe Какие процессы? Также вопрос заключается в том, чтобы убить notepad.exe в рамках некоторого конкретного родительского процесса.
Ответ №3:
В настоящее время вы можете сделать это с помощью 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 }
Ответ №4:
taskkill /F /IM notepad.exe
Это уничтожило бы все notepad.exe
‘ы — если вам нужен способ указать, чтобы уничтожались только те notepad.exe
‘ы, которые были созданы foo.exe
или около того, я не думаю, что командные строки Windows достаточно мощны для этого.
Вы могли бы использовать tasklist
для получения идентификатора процесса, на который вы хотите нацелиться, а затем использовать taskkill /F /PID <PID>
для его завершения.
Ответ №5:
Попробуйте утилиты PsKill PsList из набора PsTools.
pslist -t
выдаст вам дерево процессов (здесь вы можете найти, notepad.exe
которое является дочерним процессом explorer.exe
. Затем вы можете использовать pskill
для завершения процесса с указанным идентификатором.