Возможные ошибки
В случае появления следующей ошибки убейте процесс принудительно:
ОШИБКА: процесс с 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, если несколько процессов запущенны с одним именем.
Для того что бы завершить задачу, можно воспользоваться утилитой taskkill, я его обычно использую с ключами /f /pid или /f /im, где после ключ /pid нужно указать ID процесса, после /im его имя
Например завершим все запущенные процессы google chrome, для этого нужно набрать команду:
taskkill /f /im chrome*

Что бы завершить один процесс internet explorer нужно набрать:
taskkill /f /pid 5192

Видео по теме
Убить процесс на порту
Вывести список всех процессов в 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 существует много разных утилит и приложений. Как правило, для этих целей командная строка используется очень редко. Но в некоторых случаях, это единственная возможность и другие средства недоступны. Такое может возникнуть при блокировке стандартных диспетчеров различными вирусами и другими, нехорошими программами. Поэтому, будет очень полезно знать и уметь работать с процессами через командную строку.
Чтобы управлять процессами, при помощи возможностей командной строки, в системе предусмотрено два специальных приложения: tasklist и taskkill. Из их названия можно догадаться и об их предназначении — первое может отображать список всех запущенных процессов на данном компьютере, или на удаленной машине, а вторая умеет их останавливать. Давайте глянем, как это работает на практике.
Введите, в окне терминала, tasklist и командная строка выдаст весь список рабочих процессов на данном компьютере.

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

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

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

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

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

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

Выведем только нужные свойства. Например, оставим только имя, идентификатор процесса, путь к его исполнительному файлу, подключенные модуле и время, когда процесс был запущен. Все это мы выводим списком, при помощи такой команды:
Get-Process -Name cmd | Format-List name, id, path, modules, starttime

Благодаря этому мы узнаем о том, кто запустил процесс, как сильно он грузит систему, где располагается его файл и еще кучу разной, полезной и не очень информации.
Чтобы остановить процесс через PowerShell используйте специальный командой Stop-Process. Для того, чтобы указать нужный процесс для завершения, используйте его имя или идентификатор. Например, можно по конвейеру прекратить работу блокнота:
Get-Process | where {$_.name -match ″notepad″} | Stop-Process

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

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

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

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

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

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




