Перейти к содержимому
Управлять процессами в Windows можно не только через UI («Менеджер задач»), но и через командную строку. К тому же командная строка предоставляет больше контроля над данными действиями.
Для вывода списка запущенных процессов нужно ввести команду:
tasklist
Image Name PID Session Name Session# Mem Usage ========================= ======== ================ =========== ============ System Idle Process 0 Services 0 4 K System 4 Services 0 4 124 K smss.exe 348 Services 0 336 K csrss.exe 480 Services 0 2 780 K wininit.exe 552 Services 0 572 K csrss.exe 568 Console 1 9 260 K winlogon.exe 616 Console 1 2 736 K services.exe 640 Services 0 9 284 K lsass.exe 660 Services 0 16 464 K explorer.exe 27736 Console 1 125 660 K
«Убить» процесс можно как по его имени, так и по PID:
>Taskkill /IM explorer.exe /F
>Taskkill /PID 27736 /F
Флаг /F указывает, что завершить процесс нужно принудительно. Без данного флага, в некоторых случаях, процесс может не «убиться» (к примеру, это актуально как раз для процесса explorer.exe).
Если какая-то из программ в Windows не отвечает, не закрывается стандартными средствами или вам потребовалось закрыть её принудительно по другим причинам, сделать это можно несколькими способами.
В этой инструкции подробно о способах принудительного закрытия программ в Windows 11 или Windows 10. Большинство из них подойдёт и для предыдущих версий системы.
Диспетчер задач
Один из самых часто используемых способов для принудительного закрытия программ Windows — диспетчер задач. Шаги будут следующими:
- Откройте диспетчер задач, сделать это можно с путем нажатия клавиш Ctrl+Shift+Esc или через меню, открываемое сочетанием клавиш Ctrl+Alt+Delete.
- В списке запущенных программ или на вкладке «Сведения» (в Windows 11) или «Подробности» (в Windows 10) выберите нужную программу или соответствующий ей процесс.
- Нажмите по кнопке «Завершить задачу» (в Windows 11, может быть скрыта за кнопкой с тремя точками в верхней панели) или «Снять задачу» (в Windows 10).
- Подтвердите принудительное завершение выбранного процесса.
Принудительно завершая работу программы следует учитывать несколько нюансов:
- Если в программе велась работа, изменения в файле, над которым вы работали, вероятнее всего будут потеряны.
- Завершение важных системных процессов Windows может приводить к сбоям.
- Некоторые завершаемые процессы могут перезапуститься автоматически: это относится к важным системным процессам, а иногда и к вредоносным программам.
Если ваша задача — проверка работы системы без сторонних сервисов и процессов, вы можете использовать режим чистой загрузки Windows вместо ручного закрытия таких процессов.
Командная строка
Следующий способ — принудительное закрытие программы в командной строке, для этого:
- Запустите командную строку, лучше — от имени администратора (как это сделать).
- Введите команду
taskkill /im имя_файла_программы.exe /f /t
и нажмите Enter.
- Указанный процесс и его дочерние процессы будут закрыты.
Учитывайте: если запущено несколько экземпляров программы с заданным в команде именем, все они будут закрыты.
Если вам требуется закрыть лишь один из экземпляров, используйте следующий вариант команды, заменив ИД_ПРОЦЕССА на соответствующий идентификатор (как узнать ИД процесса или PID):
taskkill /pid ИД_ПРОЦЕССА /f /t
Windows PowerShell или Терминал Windows
Вместо классической командной строки можно использовать Терминал Windows или Windows PowerShell для прекращения работы процесса:
- Запустите Терминал Windows или PowerShell (в Windows 11 и Windows 10 для этого можно использовать контекстное меню по правому клику на кнопке «Пуск»).
- Используйте команду
Stop-Process -Name "имя_программы" -Force
для принудительного закрытия выбранной программы по её имени (а точнее — всех экземпляров этой программы, запущенных на компьютере).
- Используйте команду
Stop-Process -id ИД_ПРОЦЕССА -Force
для завершения процесса с указанным идентификатором.
Дополнительные сведения, которые могут пригодиться при принудительном закрытии программы:
- Для некоторых, не зависших программ, может сработать простое нажатие клавиш Alt+F4 для закрытия (Alt+Fn+F4 на некоторых ноутбуках).
- Если речь идет о полноэкранной программе, и вы не можете попасть в Windows, попробуйте использовать сочетание клавиш Win+D (свернуть все окна) или Alt+Enter (переход из полноэкранного в оконный режим, работает не во всех программах).
В контексте зависших и не отвечающих программ на сайте есть отдельная инструкция: Как завершить зависшую программу в Windows 11 или Windows 10.
Для завершения процессов в Windows можно использовать команду (программу) taskkill, через командирую строку CMD, используя ключи f im. Команда taskkill позволяет закрывать одно или несколько программ как по имени образа, так и по идентификатору процесса (PID) в Windows системах.
На обычных рабочих станциях данная команда не особо востребована, так как можно завершить процесс через диспетчер задач. Хотя, не всегда это получается и в данной ситуации команда Taskkill пригодится, но, это скорее исключение из правил.
В каких ситуациях пригодится программа Taskkill?
В основном, данная команда используется системными администраторами и лично я сталкивался со следующими ситуациями:
- Обновление программ на терминальном сервере – при администрировании терминального сервера большое количество людей может запустить одно и тоже приложение. Но, в большинстве случаев, при обновлении программы её необходимо сначала закрыть, т.е. завершить её процесс. Если клиентов не много, то, можно воспользоваться диспетчером задач, а если их порядка 100, то это уже проблематично. А команда Taskkill позволяет убить все процессы для определенного приложения.
- Автоматический перезапуск программы – как вы знаете не все программы работают идеально и бывает, что они подвисают. А если данная программа должна работать 24 часа в сутки и 7 дней в неделю, то приходится периодически проверять её работоспособность.
Лично я сталкивался со следующей ситуацией: есть интернет магазин, в который данные о товарах выгружаются из 1С-ки. Но, обработчик написан как-то криво, в результате чего обмен подвисает раз в сутки, а то и через каждые 2-3 часа. По этому, появилась необходимость каждый час принудительно перезапускать обработчик, не зависимо от того, подвисла программа или нет.
И так, перейдем к практике.
Синтаксис команды Taskkill
Запустим браузер Google Chrome и попробуем завершить его процесс (Пуск \ Стандартные \ Выполнить \ cmd \ taskkill /? — чтобы посмотреть синтаксис команды)
- /s КОМПЬЮТЕР, где КОМПЬЮТЕР — это IP или адрес удаленного компьютера. По умолчанию, операция выполняется в локальной системе. Если именно это вас и интересует, данную опцию можно не использовать.
- /u ДОМЕН\ПОЛЬЗОВАТЕЛЬ, где ДОМЕН — это имя домена, а ПОЛЬЗОВАТЕЛЬ — имя пользователя, для которого нужно выполнить команду. Данная опция позволяет запускать taskkill с правами определенной учетной записи или домена.
- /p — обязательно используется в сочетании с опцией /u для указания пароля к учетной записи пользователя.
- /fi — позволяет выполнять команду taskkill с определенными фильтрами.
- /f — принудительно завершает выполнение команды.
- /IM — позволяет использовать имя приложения вместо идентификатора процесса.
- /T — завершение дерева процессов.
Теперь нам нужно узнать имя приложения, которое использует данный процесс. Это можно сделать через диспетчер задач (Ctrl+Alt+Del \ Запустить диспетчер задач \ Процессы \ chrome.exe).
Если у вас нет возможности запустить диспетчер задач, допустим, вы подключились к компьютеру удаленно через командную строку, то можно воспользоваться командой tasklist, она так же отображает все процессы.
Завершение процесса через Taskkill /f /im
Taskkill /f /im chrome.exe – принудительно завершить приложение с именем chrome.exe
Chrome завершил работу, однако, возможно появление ошибки «Не удалось завершить процесс, ни один из экземпляров задания не запущен». Данное сообщение появляется из-за того, что эти процессы были связанными и когда завершил работу основной, остальные автоматически завершились.
Теперь запустим Chrome под разными пользователями, чтобы сымитировать работу терминального сервера, для этого запустим под обычным пользователем и под пользователем XP (Chrome \ Shift \ ПКМ \ Запустить от имени другого пользователя \ ОК). Теперь мы видим, что одно и тоже приложение запущено под разными пользователями, повторим команду Taskkill /f /im chrome.exe, чтобы проверить, для всех ли пользователей будет завершен процесс.
Автоматическое завершение процесса через Taskkill
Теперь попробуем сделать автоматический перезапуск приложения, в этом нам поможет планировщик задач (Пуск \ Все программы \ Стандартные \ Служебные \ Планировщик заданий \ Библиотека планировщика \ ПКМ \ Создать папку \ Перезапуск Chrome – в зависимости от вашей цели)
Создаем задачу на запуск (Создать новую задачу \ Запуск \ Выполнять с наивысшими правами \ Триггер: по расписанию, ежедневно, начиная с 11:00, повторять каждый час бесконечно, включено \ Действия: запуск программы, chrome \ ОК)
Создадим задачу на завершение процесса (Создать новую задачу \ Завершение \ Выполнять с наивысшими правами \ Триггер: по расписанию, ежедневно, начиная с 10:59:50, повторять каждый час бесконечно, включено \ Действия: запуск программы, Taskkill, дополнительные аргументы: /f /im chrome.exe \ ОК)
Теперь запустим Chrome и подведем часы к более близкому времени, чтобы увидеть, как Хром завершит работу, а потом запустится заново.
Однако, порой требуется запретить только процесс запущенный под определенным пользователем. Именно такая ситуация у меня возникла с обработчиком 1С, который выгружал данные о товарах на сайт.
Дело в том, что, можно каждый час перезапускать зависшую 1С-ку, но, если завершать все процессы 1С, то все удаленные пользователи будут из неё вылетать, а этого нельзя допустить. По этому, нужно завершать процесс, запущенный из под определенной учетной записи.
Завершение процесса для определенного пользователя
Для этого в дополнительные аргументы добавим следующую строчку /fi “username eq station-4-7” данная команда фильтрует по имени пользователя и завершает процесс только того, чье имя совпадает с указанным в фильтре.
Запустим Chrome под другим пользователем и посмотрим, сработал ли фильтр.
We can kill a process from GUI using Task manager. If you want to do the same from command line., then taskkill is the command you are looking for. This command has got options to kill a task/process either by using the process id or by the image file name.
Kill a process using image name:
We can kill all the processes running a specific executable using the below command.
taskkill /IM executablename
Example:
Kill all processes running mspaint.exe:
c:\>taskkill /IM mspaint.exe SUCCESS: Sent termination signal to the process "mspaint.exe" with PID 1972.
Kill a process forcibly
In some cases, we need to forcibly kill applications. For example, if we try to to kill Internet explorer with multiple tabs open, tasklist command would ask the user for confirmation. We would need to add /F flag to kill IE without asking for any user confirmation.
taskkill /F /IM iexplore.exe
/F : to forcibly kill the process. If not used, in the above case it will prompt the user if the opened pages in tabs need to be saved.
To kill Windows explorer, the following command would work
C:\>taskkill /F /IM explorer.exe SUCCESS: The process "explorer.exe" with PID 2432 has been terminated.
The above command would make all GUI windows disappear. You can restart explorer by running ‘explorer’ from cmd.
C:\>explorer
Not using /F option, would send a terminate signal. In Windows 7, this throws up a shutdown dialog to the user.
C:\>taskkill /IM explorer.exe SUCCESS: Sent termination signal to the process "explorer.exe" with PID 2432. C:\>
Kill a process with process id:
We can use below command to kill a process using process id(pid).
taskkill /PID processId
Example:
Kill a process with pid 1234.
taskkill /PID 1234
Kill processes consuming high amount of memory
taskkill /FI "memusage gt value"
For example, to kill processes consuming more than 100 MB memory, we can run the below command
taskkill /FI "memusage gt 102400"
More examples
Sometimes applications get into hung state when they are overloaded or if the system is running with low available memory. When we can’t get the application to usable state, and closing the application does not work, what we usually tend to do is kill the task/process. This can be simply done using taskkill command.
To kill Chrome browser from CMD
Taskkill /F /IM Chrome.exe
Kill Chromedirver from command line
Taskkill /F /IM Chromedriver.exe
To kill firefox browser application
taskkill /F /IM firefox.exe
To kill MS Word application(Don’t do this if you haven’t saved your work)
taskkill /F /IM WinWord.exe
Sometimes, the command window itself might not be responding. You can open a new command window and kill all the command windows
taskkill /F /IM cmd.exe
This even kills the current command window from which you have triggered the command.
We use the taskkill
command to terminate applications and processes in the Windows command prompt. Running taskkill
is the same as using the End task button in the Windows Task Manager.
With taskkill
, we kill one or more processes based on the process ID (PID) or name (image name). The syntax of this command is as follows:
taskkill /pid PID
taskkill /im name
You can use the tasklist command to find the PID or image name of a Windows process.
The /F
option tells Windows to force kill the process:
taskkill /f /im notepad.exe
Kill a Process by PID
In the following example, we run the taskkill
command to terminate a process with a PID of 1000:
taskkill /f /pid 3688
The multiple processes can be terminated at once, as shown in the following example:
taskkill /pid 3688 /pid 4248 /pid 4258
Kill a Process by Name
To kill a process by its name, we use the /IM
option. In the following example, we run the taskkill
command to terminate the notepad.exe
process:
taskkill /im notepad.exe
The /t
option tells Windows to terminate the specified process and all child processes. In the following example, we force kill Microsoft Edge and its child processes:
taskkill /f /t /im msedge.exe
Command Options
/S | Specifies the IP Address or name of the remote system to connect to. |
/U | Specifies the name of the Windows user under which the command should execute. |
/P | Password for the user. Prompts for input if omitted. |
/FI | This option is to apply filters (see examples below). |
/PID | Specifies the PID of the process to be terminated. |
/IM | Specifies the image name of the process to be terminated. |
/T | Terminates the specified process and its child processes (end all tasks). |
/F | Forcefully kill a process. |
Examples
Terminate a process with a PID of 4000:
taskkill /pid 4000
Terminate spoolsv.exe
(which is the Print Spooler service on Windows):
taskkill /im spoolsv.exe
Using /f
and /t
options to forcefully terminate the entire process tree of the Microsoft Edge browser:
taskkill /f /t /im msedge.exe
Force kill any process that starts with the name note:
taskkill /f /t /im note*
In the following example, we terminate all processes that are not responding by using a filter:
taskkill /f /fi "status eq not responding"
In the above example, eq
stands for equal. You can use the following filters with the /fi
option.
Run taskkill
command on a remote computer:
taskkill /s 192.168.1.100 /u robst /pid 5936
In the above example, the process with PID 5936 will be terminated on a remote computer with an IP address of 192.168.1.100
.
Note that the Windows Firewall must be configured on the remote computer to allow the taskkill
command. Click the link below for instructions on how to do it.
How to allow tasklist and taskkill commands from Windows Firewall
All right, here’s the end of this tutorial. While working on the CMD, you can run taskkill /?
to display the help page, command options, and filters of the tasklist
command.
The PowerShell equivalent to the taskkill
is the Stop-Process
cmdlet. But you can always use taskkill
in PowerShell as well.