Завершение процесса из командной строки Windows

Описание работы команды TaskKill, которая позволяет завершать процессы Windows из командной строки. Переменные и операторы.
Завершение процесса из командной строки Windows Windows

Вы наверняка знакомы с традиционным способом завершить процесс в Windows с помощью диспетчера задач. Этот способ эффективен, но использование командной строки даёт больше контроля и возможность завершить несколько процессов за раз.

Возможность завершить процесс из командной строки даёт нам команда TaskKill. Вы можете убить процесс из командной строки по его идентификатору (PID) или по имени образа (имени exe файла).

Запустите консоль от имени администратора и введите команду tasklist, чтобы просмотреть все запущенные процессы.

C:\tasklist

Имя образа                     PID Имя сессии          № сеанса       Память
========================= ======== ================ =========== ============
System Idle Process              0 Services                   0        24 КБ
System                           4 Services                   0     1 256 КБ
conhost.exe                   5944 Console                    2     2 888 КБ
notepad.exe                   3100 Console                    2     7 400 КБ
tasklist.exe                  8892 Console                    2     6 100 КБ
WmiPrvSE.exe                  7340 Services                   0     6 864 КБ
smss.exe                       372 Services                   0       544 КБ
csrss.exe                      536 Services                   0     3 336 КБ
wininit.exe                    812 Services                   0       436 КБ

В приведённом выше примере можно увидеть имя образа и PID для каждого процесса. Если вы хотите убить процесс Notepad, нужно ввести:

taskkill /IM notepad.exe /F

или

taskkill /PID 3100 /F

Флаг /F — нужен для принудительного завершения процесса. Если его не использовать, то в некоторых случаях ничего не произойдёт, и приложение продолжит свою работу. Как пример, попытка завершения процесса explorer.exe без этого флага ни к чему не приведёт.

Если у вас есть несколько экземпляров приложений, как например chrome, то выполнение команды taskkill /IM. chrome.exe завершит их все. При указании PID можно завершить только конкретные процессы Chrome.

В taskkill есть варианты фильтрации, которые позволяют использовать переменные и операторы.

Переменные:

  • STATUS (статус)
  • IMAGENAME (имя образа)
  • PID (значение)
  • SESSION (номер сессии)
  • CPUTIME (время CPU)
  • MEMUSAGE (использование памяти в кб)
  • USERNAME (имя пользователя)
  • MODULES (имя DLL)
  • SERVICES (имя службы)
  • WINDOWTITLE (заголовок окна)

Операторы:

  • eq (равно)
  • ne (не равно)
  • gt (больше чем)
  • lt (меньше чем)
  • ge (больше или равно)
  • le (меньше или равно)
  • * (любые символы)

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

taskkill /FI «WINDOWTITLE eq Internet*» /F

Чтобы завершить все процессы, запущенные от имени Alex:

taskkill /FI «USERNAME eq Alex» /F

Таким же образом можно завершить процесс, запущенный на другом компьютере из командной строки. Например, имя компьютера OperatorPC, необходимо ввести:

taskkill /S OperatorPC /U Имя_пользователя_на_удаленной_машине /P Пароль_от_удаленной_машины /IM notepad.exe /F

Подробную информацию вы всегда можете получить, запустив taskkill с ключом /?:

taskkill /?

Вопросы традиционно приветствуются в комментариях.

Алексей Герзанов aka Gerzoid
Алекс Гезанов

Работаю в сервисном центре по ремонту и обслуживанию бытовой техники. За более чем 10 лет трудовой деятельности, я сталкивался с решением большого количества проблем в работе ОС Windows, периферийных устройств, бытовой техники, игровых консолей Playstation и т. д.