Windows: TaskKill – Убить Процесс по PID, Имени, Порту – CMD – ShellHacks

Возможные ошибки

В случае появления следующей ошибки убейте процесс принудительно:

ОШИБКА: процесс с PID XXX не может быть прерван.
Причина: Данный процесс может быть прерван только насильственно с параметром /F.

C:> taskkill /F /IM process_name.exe
- or -
C:> taskkill /F /PID process_id

При получении ошибки «Доступ запрещен», запустите командную строку от имени администратора:

ОШИБКА: процесс с PID XXX не может быть прерван.
Причина: Доступ запрещен.

Чтобы запустить CMD с правами администратора, нажмите клавишу Win, чтобы открыть меню «Пуск», наберите cmd, чтобы найти командную строку и нажмите комбинацию Ctrl Shift Enter, чтобы запустить командную строку от имени администратора.

Как посмотреть список запущенных процессов из командной строки и как их завершить.

Бывают ситуации, когда нужно посмотреть/завершить запущенные процессы из командной строки. Это бывает нужно если вы управляете компьютером удаленно из командной строки, либо если компьютер сильно загружен, и очень много времени уходит на запуск диспетчера задач. Еще бывает такое, что через диспетчер задач процесс не завершается.  В этих случаях вам может помочь способ просмотра и завершения задач из командной строки, о чем я и расскажу ниже.
Для того что бы посмотреть запущенные процессы, существует утилита командной строки – tasklist, пример результата ее выполнения ниже на скриншоте. Из нее нам нужно запомнить имя процесса или PID, если несколько процессов запущенны с одним именем.
Windows: TaskKill - Убить Процесс по PID, Имени, Порту - CMD - ShellHacks
Для того что бы завершить задачу, можно воспользоваться утилитой taskkill, я его обычно использую с ключами /f /pid или /f /im, где после ключ /pid  нужно указать ID процесса, после /im его имя
Например завершим все запущенные процессы google chrome, для этого нужно набрать команду:

taskkill /f /im chrome*

Windows: TaskKill - Убить Процесс по PID, Имени, Порту - CMD - ShellHacks
Что бы завершить один процесс internet explorer нужно набрать:

taskkill /f /pid 5192

Windows: TaskKill - Убить Процесс по PID, Имени, Порту - CMD - ShellHacks

Видео по теме

Убить процесс на порту

Вывести список всех процессов в Windows, слушающих TCP и UDP порты и узнать PID процесса, который слушает определенный порт:

C:> netstat -ano | findstr :port

Узнать имя процесса по его PID:

C:> tasklist /FI "pid eq process_id"

Убить процесс по имени или PID:

C:> taskkill /IM process_name.exe
- or -
C:> taskkill /PID process_id

Убить процесс по pid

Вывести список всех процессов в Windows и узнать PID процесса, который нужно убить (без учета регистра):

C:> tasklist | findstr /I process_name

Убить процесс по PID:

C:> taskkill /PID process_id

Убить процесс по имени

Вывести список всех процессов в Windows и узнать полное имя процесса, который нужно убить (без учета регистра):

C:> tasklist | findstr /I process_name

Убить процесс по имени:

C:> taskkill /IM process_name.exe

Управление процессами из командной строки

Для управления процессами Windows существует много разных утилит и приложений. Как правило, для этих целей командная строка используется очень редко. Но в некоторых случаях, это единственная возможность и другие средства недоступны. Такое может возникнуть при блокировке стандартных диспетчеров различными вирусами и другими, нехорошими программами. Поэтому, будет очень полезно знать и уметь работать с процессами через командную строку.

:/>  Как изменить иконку файла в Windows 10: способы установки новых значков, как сделать свои ярлыки

Чтобы управлять процессами, при помощи возможностей командной строки, в системе предусмотрено два специальных приложения: tasklist и taskkill. Из их названия можно догадаться и об их предназначении — первое может отображать список всех запущенных процессов на данном компьютере, или на удаленной машине, а вторая умеет их останавливать. Давайте глянем, как это работает на практике.

Введите, в окне терминала, tasklist и командная строка выдаст весь список рабочих процессов на данном компьютере.

cmd1-min

Все данные будут отображаться в табличной форме, но можно поменять вид данных в другой формат. Воспользуйтесь параметром /fo и все отобразится в виде списка (или как CSV), а если использовать параметр /v, то в этот список будут включены более подробные данные о каждом процессе. Введите команду taskliist /v /fo list (без кавычек естественно) и в окне должна появиться приблизительно такая картина.

cmd2-min

Обычно список выходит немалых размеров, и чтобы не листать его слишком долго, выполним более точный запрос. Для этих целей существует параметр /fi, способный уточнить поиск процессов используя фильтры. Для примера, введем команду, которая отобразит все процессы, запущенные от имени пользователя user и занимающие до 40 мегабайт в памяти компьютера. Команда выглядит следующим образом: tasklist /fi »username eq user» /fi »memusage le 40000». А на рисунке ниже представлен результат работы команды.

cmd3-min

Допустим, мы нашили процессы, которые хотим завершить. Теперь настал черед утилиты «taskkill». Для прекращения работы процесса можно использовать его имя, или идентификатор PID, а можно прекращать процессы используя разные фильтры. Для эксперимента, мы запустим несколько окон программы Блокнот (notepad.exe) и на них испытаем разные способы.

cmd5-min

При помощи параметра /f процесс будет завершен в принудительном порядке, а если добавить еще ключ /t — завершатся все другие, которые были через него запущенны.  Чтобы узнать больше возможностей, для команд tasklist и taskkill, добавьте к ним ключ /?. Он отобразит полную справку для этих утилит. Не будем забывать про такое мощное средство, как PowerShell. Мы можем им воспользоваться и прям в этом же окне командной строки. Чтобы просмотреть весь список процессов, запустите команду Get-Process.

:/>  Файл тмр что это такое

cmd6-min

Чтобы опять не рыться во всех найденных процессах, можно задать фильтр для получения отдельных, соответствующих критериям, процессов. Для этого существует команду Where-Object. Давайте получим табличку с процессами, загружающими процессор на данном компьютере и выстроим их в порядке возрастания нагрузки. Воспользуемся командой следующего вида: Get-Process | where {$_.cpu -gt 0} | sort cpu

Результат будет иметь приблизительно такой вид:

cmd9-min

Здесь можно получить полную информацию о любом запущенном процессе. Сейчас мы узнаем список всех свойств процесса cmd. Это можно сделать при помощи такой команды:

Get-Process -Name cmd | Get-Member -Membertype property

cmd7-min

Выведем только нужные свойства. Например, оставим только имя, идентификатор процесса, путь к его исполнительному файлу, подключенные модуле и время, когда процесс был запущен. Все это мы выводим списком, при помощи такой команды:

Get-Process -Name cmd | Format-List name, id, path, modules, starttime

cmd8-min

Благодаря этому мы узнаем о том, кто запустил процесс, как сильно он грузит систему, где располагается его файл и еще кучу разной, полезной и не очень информации.

Чтобы остановить процесс через PowerShell используйте специальный командой Stop-Process. Для того, чтобы указать нужный процесс для завершения, используйте его имя или идентификатор. Например, можно по конвейеру прекратить работу блокнота:

Get-Process | where {$_.name -match ″notepad″} | Stop-Process

cmd10-min

Для работы с процессами на другом, удаленном компьютере необходимо использовать совсем другой командой — Get-WmiObject. Сейчас посмотрим, какие процессы запущенны на компьютере с именем «PC»:

Get-WmiObject win32_process -computername PC | ft name, processid, description

cmd11-min

Чтобы узнать больше информации и различных ключей, для работы с процессами через PowerShell, используйте встроенную справку. Запустите команду Get-Help «имя команды» и появится справка по указанному параметру. Есть еще две дополнительные утилиты, способные выполнять операции с процессами. Ими являются Pslist и Pskill. Изначально их в системе нет, они входят в пакет PSTools.

:/>  Папка Windows Installer и ее очистка

Сами по себе эти приложения не нуждаются в установке. Их достаточно скопировать в любое место на своем жестком диске. Чтобы запустить, зайдите в папку, где они хранятся, и активируйте нужной командой.

cmd12-min

Соответственно, утилита Pslist способна вывести информацию о процессах, запущенных на компьютере. Можно выборочно находить отдельные процессы и выводить их на экран. Давайте продолжим издеваться над запущенным блокнотом и просмотрим о нем информацию командой pslist notepad -x.

cmd13-min

Интересной функцией Pslist является возможность работы в режиме диспетчера процессов. Вся информация постоянно обновляется и можно задавать подходящий интервал получения актуальных данных. За этот режим ответствен ключ -s. Допустим, необходимо установить режим диспетчера с обновлением каждые десять секунд, эта команда будет выглядеть так: tasklist -s -r 10

cmd14-min

Завершить любой процесс можно при помощи утилиты Pskill. Введите эту команду и идентификатор процесса, или его имя. На рисунке ниже можете посмотреть, как это будет выглядеть в случае с бедным блокнотом.

cmd15-min

Дополнительную информацию, в виде справки, можно открыть дополнительным параметром /?

Самый главный момент — командная строка, во всех случаях, должна быть запущена от имени администратора, иначе ничего не получится. Но если столкнетесь с какими-либо сложными проблемами, или возникнут вопросы, то всегда можно этим поделиться в комментариях к данной статье, и мы вместе постараемся разобраться.

Оставьте комментарий