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.
Содержание статьи:
- Способы завершить процесс
- Вариант 1: через диспетчер задач
- Вариант 2: с помощью командной строки
- Вариант 3: с помощью спец. приложений
- Вопросы и ответы: 0
Всем здравия!
Время от времени некоторые приложения в Windows могут подвисать, закрываться с ошибками, давать сбои (иногда и вовсе при закрытии окна приложения — сам процесс не завершается и остается в памяти. У меня, например, регулярно такое происходит с uTorrent на домашнем ПК: процесс «utorrent.exe» висит в памяти, а самого окна нет!).
Разумеется, если «такой сбойный» процесс остался в памяти — он может мешать норм. работе: из-за него, возможно, вы не сможете запустить приложение снова; он может загружать ЦП до 50-99%; копирование и открытие файлов может тормозить, идти рывками, и т.п.
В общем, в рамках этой заметки рассмотрим несколько способов, как можно завершать такие процессы (иногда опытные пользовали используют другую аббревиатуру: «Убить процесс»).
*
📌 Важно!
Простая перезагрузка компьютера позволяет «убивать» все текущие процессы… (правда, если есть зависший процесс — то, возможно, понадобиться принудительное завершение работы через кнопку «reset»).
*
Способы завершить процесс
Вариант 1: через диспетчер задач
Клавиши для вызова диспетчера задач: Ctrl+Alt+Del или Ctrl+Shift+Esc
Встроенный в Windows 📌диспетчер задач позволяет просмотреть все запущенные программы (процессы). Чтобы закрыть один из них — во вкладке «Процессы» найдите нужный, сделайте по нему правый клик мыши и в появившемся меню нажмите «Снять задачу».
Диспетчер задач — снять задачу — Windows 11
Кстати, также просмотреть все процессы и закрыть их позволяет вкладка «Пользователи». См. скрин ниже. 👇
Пользователи — снять задачу // Скрин из Windows 11
*
Что делать, если процесс не завершается
- перезагрузить ПК, если это возможно;
- откл. диски, приводы, и др. оборудование, с которым может быть связан процесс (например, тот же uTorrent может подвисать, если вы загружаете информацию на внешний накопитель… И если этот диск переподключить — процесс тут же будет завершен);
- возможно, у вас нет 📌администраторских прав (попробуйте запустить диспетчер задач так: нажать Win+R, ввести команду taskmgr и нажать Ctrl+Shift+Enter);
- воспользуйтесь нижеприведенными вариантами принудительного завершения процессов.
*
Вариант 2: с помощью командной строки
- для начала нужно запустить 📌командную строку от имени администратора (Win+R, команда CMD, и затем нажать Ctrl+Shift+Enter);
- затем рекомендуется ввести команду tasklist для просмотра всех процессов;
tasklist — просмотр всех процессов
- обычно список всех процессов достаточно длинный и работать с ним не очень удобно — поэтому, чтобы найти конкретный процесс я бы порекомендовал попробовать такую команду: tasklist /FI «IMAGENAME eq utor*» (разумеется, вместо «utor*» — укажите часть своего имени процесса. Звездочка тут помогает не указывать полное имя процесса «utorrent.exe», т.к. возможно вы его и не знаете);
tasklist — как просмотреть только процессы с нужным именем
- теперь для принудительного завершения процесса нужно ввести эту команду (например): taskkill /F /IM utorrent.exe (Разумеется, имя процесса у вас будет свое. Кстати, обратите внимание на ключ «/F» — он указывает на принудительное завершение процесса);
Процесс был успешно завершен!
- дополню вышесказанное: завершить процесс можно не только по имени, но и по PID (идентификатору). Например, так: taskkill /F /PID 18756
📌 Важно!
Завершая процесс принудительно — очень вероятно вы не позволите сохраниться данным, кэшу (у того же uTorrent потом придется ждать пере-хеширования всех торрентов в списке). Поэтому делать это лучше тогда, когда другие варианты не сработали…
*
Вариант 3: с помощью спец. приложений
Есть одно довольно удобно приложение, позволяющее просмотреть все процессы в Windows — речь 📌о Process Explorer (обратите внимание, что оно выложено на сайте Microsoft, в установке не нуждается — достаточно просто запустить).
Так вот, сразу же в главном окне можно найти весь список процессов, отсортировать его по имени, нагрузке на ЦП, память и т.п. Чтобы завершить один из процессов — просто сделайте по нему правый клик мышкой, а затем выберите в меню «Kill Process» (см. скрин ниже). 👇
Удобно?! 👌
Kill Process (убить процесс) — утилита Process Explorer
Кстати, у Process Explorer есть аналог — утилита Process Hacker 2 (не смотрите не название, для текущей нашей задачи она ничем не отличается от Process Explorer. Правда, давненько не обновлялась, но работает в Windows 11 до сих пор).
*
Дополнения по теме — можно оставить ниже, с помощью формы комментирования.
Всего доброго!
👋
Multitasking with many apps and programs in the background can become difficult to manage and kill the processes running in the background using just the Task Manager or even with tools like Microsoft Process Explorer. However, another way to kill tasks and processes is from the command line in Windows.
However, you can open the Task Manager, right-click the process, and then click “End Task” to kill off the process. You can also terminate a specific process from the Details tab in the Task Manager. Sometimes you encounter issues with the Task Manager itself. For times like these, you may need to kill a process using the command line, which includes both the Command Prompt and Windows PowerShell.
In this article, we show you multiple ways to kill a process in Windows using Command Line.
Table of Contents
Why use the command line to terminate a process?
Although a normal user will not require killing processes using the command line, there are several use cases where command line tools are much better than their visual counterparts like the task manager. The following command line tools can be used in the following scenarios:
- Troubleshooting: Some processes are simply stubborn. They just stop responding and refuse to die. In such a condition, killing them forcefully using the command line is an easier and safer option.
- System administration: If you are a sysadmin, you should be a fan of command line utilities. These tools save a lot of work and time. You can run these commands remotely throughout your network to troubleshoot systems remotely.
- Script Automation: If you are a developer and need to start or stop processes in Windows, you will need these command line tools for automation.
- Virus prevention: If your system gets infected with viruses, it will simply not let you kill the compromised processes, as they will respawn upon kill. In this case, you can automate a monitoring process where the process is killed as soon as it starts.
There are several other use cases, but these are the most common ones.
How to Kill a Process from Command Prompt
You can kill the process in cmd using the taskkill command. However, you must either know its Process Identifier (PID) or the name of the process before you can end it.
To view and list the tasks and processes currently running on your computer, run the following command in an elevated Command Prompt:
Tasklist
Note either the name under the Image name column or the PID number of the task you want to kill. These will be used in the cmdlets to kill the respective process.
Once you have either the name or the PID of the task, use either of the following cmdlets to kill the process:
-
Kill task using process name in Command Prompt:
Replace [ProcessName] with the name of the process.
taskkill /IM "[ProcessName]" /F
Kill process from Command Prompt using process name -
Kill task using PID in Command Prompt:
Replace [PID] with the Process ID.
taskkill /F /PID [PID]
Kill process from Command Prompt using a process ID
If you are using earlier versions of Windows, like Windows 7, Windows Vista or even Windows XP, you can use tskill command, which is similar to taskkill but limited in functionality. You just need to provide the process ID to kill a task using tskill command:
tskill process-id
Replace process-id with the actual process ID. For example,
tskill 1234
How to Kill a Process from Windows PowerShell
Similar to the Command Prompt, you can also kill processes using PowerShell. But first, we must get the name or the process ID for the process to kill.
To obtain a list of the running processes in PowerShell, run the following command in PowerShell with elevated privileges:
Get-Process
From here, note down the process name or the PID (in the ID column) of the process that you want to kill, and then use it in the following commands:
Note: Unlike the Command Prompt, Windows PowerShell shows no output once a process is killed.
-
Kill task using process name in PowerShell:
Replace [ProcessName] with the name of the process.
Stop-Process -Name "[ProcessName]" -Force
Kill process from PowerShell using process name -
Kill task using PID in PowerShell:
Replace [PID] with the Process ID.
Stop-Process -ID [PID] -Force
Kill process from PowerShell using a process ID
How to Kill a Process using WMIC
Windows Management Instrumentation Command-Line (WMIC) is a useful command line tool to perform administrative tasks especially for sysadmins and power users. You can terminate the process using wmic command.
Please note all the below mentioned commands will only work if you open Command Prompt, PowerShell or Terminal as an administrator.
wmic process where "ProcessId='process-id'" delete
Replace process-id with the actual process ID. For example,
wmic process where "ProcessId='1234'" delete
You can also terminate the process using its name:
wmic process where "name='process-name'" delete
Replace process-name with the actual process name. For example,
wmic process where "name='Skype.exe'" delete
If there are multiple processes by the same name, this command will kill all of them. For example, the above mentioned command will delete all instances with the name Skype.exe.
How to Kill a Process using SysInternals PsKills
PsKill is a tiny tool that comes with the PsTools Suite by SysInternals. This is a command-line tool used to kill processes, both locally and remotely on other computers on the network.
Although it was designed for WindowsNT and Windows 2000 that did not include the other command-line tools (Killtask and Stop-Process), PsKill can still be used to end processes.
Learn how to manage processes and services on remote computers.
Use the following steps to download and use PsKill to kill tasks using the command line on a Windows computer:
-
Start by downloading PsTools.
Download PSTools -
Extract the contents of the PsTool file.
Extract PsTools -
Launch an elevated Command Prompt and then use the
CD
cmdlet to change your directory to the extracted PsTools folder.CD [PathToPsTools]
Change directory to PsTools folder -
Run the following command to list all the running processes:
PsList
List all running processes using PsList Note down the name of the process that you want to kill.
-
Now use the following command to kill a process using its name:
PsKill.exe [ProcessName]
Kill process using PsKill
As you can see from the image above, the respective process will be killed, and the associated service or program will be terminated.
Ending Thoughts
Even without the use of the Task Manager, there are multiple ways of killing a task or a process directly from the command line. You can even use these commands in scripts to end a Windows process.
On top of that, you can choose whether to kill a process using its name or its PID. Either way, Command Prompt and Windows PowerShell can be used with both native and external commands for this purpose. Not only that, but you can also use these commands in Windows Terminal for the same purpose.
If you are a sysadmin who wants quick and convenient methods to kill running processes, the given command line methods just might be the most convenient way of accomplishing it.
Когда вы запускаете приложение, операционная система создает процесс для исполняемого файла приложения. Windows назначает процессу специальный номер, известный как Идентификатор процесса (PID), он уникальный для каждого процесса. Существует несколько причин, по которым вы можете захотеть завершить процесс, и различные методы, которые вы можете использовать для его завершения. Вот как это можно сделать.
Если приложение перестает отвечать на запросы, потребляет много системных ресурсов или ведет себя неожиданно и не позволяет вам выйти из него, вы можете завершить процесс этого приложения, тем самым, принудительно закрыть приложение или игру. Традиционно в Windows для этого, можно использовать диспетчер задач и командную строку. В дополнение к этим методам вы можете использовать и PowerShell.
Как Завершить процесс в Windows 10.
Способ 1: С помощью Диспетчера задач
Шаг: 1 Откройте Диспетчер задач.
Шаг: 2 Нажмите «Подробнее» в правом нижнем углу, чтобы открыть более подробный вид.
Шаг: 3 Выберите нужную программу или игру в списке приложений.
Шаг: 4 Нажмите кнопку «Снять задачу» или нажмите клавишу Del на клавиатуре.
Все.
Это самый известный способ, завершения процесса с помощью диспетчера задач.
Примечание. То же самое можно сделать на вкладке «Подробности». Это специальная вкладка, в которой перечисляются имена процессов вместо имен приложений. На вкладке вы можете выбрать процесс из списка и нажать кнопку «Снять задачу» или нажать клавишу Del.
Использование кнопки «Снять задачу» означает, что Windows сначала пытается использовать определенный тайм-аут, если процесс действительно не отвечает на запросы, система принудительно завершает работу данного приложения.
Другой классический метод завершения процесса — это консольный инструмент taskill. Он присутствует во всех современных версиях Windows. С его помощью можно снять задачу без Диспетчера задач.
Cmd «Снять задачу», используя Taskkill.
Примечание. Некоторые процессы работают от имени администратора. Чтобы завершить их, вам нужно открыть экземпляр командной строки, так же от имени администратора.
Шаг: 1 Откройте командную строку в качестве текущего пользователя или администратора с помощью Поиска или меню «Пуск» .
Шаг: 2 Введите команду, чтобы просмотреть список запущенных процессов и их PID. Поскольку список может быть очень длинным, вы можете использовать клавишу Пробел чтобы смотреть список Далее.
Список задач Windows 10
Шаг: 3 Чтобы завершить процесс с помощью PID, введите команду:
taskkill /F /PID pid_number
Шаг: 4 Чтобы завершить процесс по его имени, введите команду
taskkill /IM "process name" /F
Примеры:
Например, чтобы завершить процесс WINWORD.EXE с помощью PID:
Чтобы завершить процесс по его названию:
taskkill /IM " WINWORD.EXE" /F
Taskkill поддерживает множество полезных опций, которые можно использовать для завершения приложений. Вы можете узнать их, запустив его следующим образом : taskkill /?
Используя taskkill, вы можете сразу закрыть все не отвечающие задачи в Windows 10 .
Завершить процесс в Windows 10 используя PowerShell
Примечание. Чтобы завершить процесс с повышенным уровнем, вам нужно открыть PowerShell в качестве администратора.
Шаг: 1 Откройте PowerShell. Если необходимо, запустите его как Администратор .
Шаг: 2 Введите команду:
Get-Process
Это позволит просмотреть список запущенных процессов.
Шаг: 3 Чтобы завершить процесс по его имени, выполните следующий командлет:
Stop-Process -Name "Имя процесса" -Force
Шаг: 4 Чтобы завершить процесс с помощью ID, запустите команду:
Stop-Process -ID укажите id -Force
Примеры:
эта команда закроет процесс WINWORD.
Stop-Process -Name » WINWORD» -Force
Следующая команда закроет процесс с ID 11032.
Stop-Process -ID 11032 -Force
Вот и все.
Вам может быть интересно: Как сохранить все процессы Windows 10 в текстовый файл с помощью TaskList
Как завершить процесс службы Windows, которая зависла в статусе stopping (остановка) или starting (запуск)? Большинство администраторов Windows встречалось с ситуациями, когда при попытке остановить (перезапустить) службу из графического интерфейса консоли управления службами (
Services.msc
), служба зависает намертво и висит в статусе Stopping (или Starting). При этом все кнопки управления службой в консоли (Start, Stop, Restart) становятся недоступными (серыми). Самый простой способ – перезагрузить сервер, но это не всегда допустимо. Рассмотрим альтернативные способы, позволяющие принудительно завершить зависшую службу или процесс без необходимости перезагрузки Windows.
Если в течении 30 секунд после попытки остановки службы, она не останавливается, Windows выводит сообщение:
Не удалось остановить службу xxxxxxx Windows на локальном компьютере. Ошибка 1053. Служба не ответила на запрос своевременно.
Windows Could not stop the xxxxxx service on Local Computer Error 1053: The service did not respond in a timely fashion.
При попытке остановить такую службу командой:
net stop wuauserv
, появляется сообщение:
The service is starting or stopping. Please try again later.
Или:
[SC] ControlService: ошибка: 1061: Служба в настоящее время не может принимать команды.
Windows could not stop the Service on Local Computer. Error 1061: The service cannot accept control messages at this time.
Содержание:
- Как остановить зависшую службу Windows из командной строки?
- Принудительное завершение зависшей службы в PowerShell
- Анализ цепочки ожидания зависшего приложения с помощью ResMon
- Process Explorer: Завершение зависшего процесса из-под SYSTEM
Как остановить зависшую службу Windows из командной строки?
Самый простой способ завершить зависшую служу – воспользоваться утилитой taskkill. В первую очередь нужно определить PID (идентификатор процесса) нашей службы. В качестве примера возьмем службу Windows Update. Ее системное имя wuauserv (имя можно посмотреть в свойствах службы в консоли
services.msc
).
Важно. Будьте внимательными. Принудительная отставка процесса критичной службы Windows может привести к BSOD или перезагрузке операционной системы.
Отройте командную строку с правами правами администратора (иначе будет ошибка access denied) и выполите команду:
sc queryex wuauserv
В данном случае PID процесса —
9186
.
Чтобы принудительно завершить зависший процесс с PID 9186 воспользуйтесь утилитой taskkill:
taskkill /PID 9168 /F
SUCCESS: The process with PID 9168 has been terminated.
Данная команда принудительно завершит процесс службы. Теперь вы можете запустите службу командой sc start servicename или через консоль управления службами (или совсем удалить эту службу, если она не нужна).
«Выстрел в голову» зависшей службы можно выполнить и более элегантно, не выполняя ручное определение PID процесса. У утилиты taskkill есть параметр /FI, позволяющий использовать фильтр для выбора необходимых служб или процессов. Вы можете остановить конкретную службу командой:
TASKKILL /F /FI “SERVICES eq wuauserv”
Или можно вообще не указывать имя, службы, завершив все сервисы в зависшем состоянии с помощью команды:
taskkill /F /FI “status eq not responding”
После этого служба, зависшая в статусе Stopping должна остановиться.
Также вы можете использовать утилиту taskkill для принудительной остановки зависших служб на удаленном компьютере:
TASKKILL /S CORPFS01 /F /FI “SERVICES eq wuauserv”
Принудительное завершение зависшей службы в PowerShell
Также вы можете использовать PowerShell для принудительной остановки службы. С помощью следующей команды можно получить список служб, находящихся в состоянии Stopping:
Get-WmiObject -Class win32_service | Where-Object {$_.state -eq 'stop pending'}
Завершить процесс для всех найденных служб поможет командлет Stop-Process. Следующий PowerShell скрипт завершит все процессы зависших служб в Windows:
$Services = Get-WmiObject -Class win32_service -Filter "state = 'stop pending'"
if ($Services) {
foreach ($service in $Services) {
try {
Stop-Process -Id $service.processid -Force -PassThru -ErrorAction Stop
}
catch {
Write-Warning -Message " Error. Error details: $_.Exception.Message"
}
}
}
else {
Write-Output "No services with 'Stopping'.status"
}
В новом PowerShell Core 6.x/7.x вместо командлета Get-WmiObject нужно использовать Get-CimInstance. Замените первую команду скрипта на:
$Services = Get-CimInstance -Class win32_service | where-Object state -eq 'stop pending'
Анализ цепочки ожидания зависшего приложения с помощью ResMon
Вы можете определить процесс, из-за которого зависла служба с помощью монитора ресурсов (
resmon.exe
).
- В окне Монитора ресурсов перейдите на вкладку ЦП (CPU) и найдите процесс зависшей службы;
- Выберите пункт Анализ цепочки ожидания (Analyze Wait Chain);
- В новом окне скорее всего вы увидите, что вам процесс ожидает другой процесс. Завершите его. Если выполняется ожидание системного процесса svchost.exe, завершать его не нужно. Попробуйте проанализировать цепочку ожидания для этого процесса. Найдите PID процесса, которого ожидает ваш svchost.exe и завершите его
Process Explorer: Завершение зависшего процесса из-под SYSTEM
Некоторые процессы, запущенные из-под SYSTEM, не может завершить даже локальный администратора сервера. Дело в том, что у него просто может не быть прав на некоторые процессы или службы. Чтобы завершить такие процесс (службы), вам необходимо предоставить локальной группе Administrators права на службу (процесс), а потом завершить их. Для этого нам понадобятся две утилиты: psexec.exe и ProcessExplorer (доступны на сайте Microsoft).
- Чтобы запустить утилиту ProcessExplorer с правами системы (SYSTEM), выполните команду:
PSExec -s -i ProcExp.exe
- В списке процессов Process Explorer найдите процесс зависшей службы и откройте ее свойства;
- Перейдите на вкладку Services, найдите свою службу и нажмите кнопку Permissions;
- В разрешения службы предоставьте права Full Control для группы администраторов (Administrators). Сохраните изменения;
- Теперь попробуйте завершить процесс службы.
Обратите внимание, что права на службу и ее процесс выдались временно, до ее перезапуска. Для предоставления постоянных прав на службы познакомьтесь со статьей Права на службы в Windows.
Таймаут, в течении которого Service Control Manager ждет ожидания запуска или остановки службы можно изменить через параметр реестра ServicesPipeTimeout. Если служба не запускается в течении указанного таймаута, Windows записывает ошибку в Event Log (Event ID: 7000, 7009, 7011, A timeout was reached 30000 milliseconds). Вы можете увеличить этот таймаут, например до 60 секунд:
reg add HKLM\SYSTEM\CurrentControlSet\Control /v ServicesPipeTimeout /t REG_SZ /d 600000 /f
Это бывает полезным при запуске/остановки тяжелых служб, которые не успевают завершить все процессы быстро (например, MS SQL Server).