TASKKILL
Формат командной строки:
Описание параметров командной строки :
/P пароль – Пароль для этого пользовательского контекста. Запрашивается, если он не задан.
/FI фильтр – Применение фильтра для выбора набора задач. Разрешение использовать “*”. Пример, imagename eq acme*
/PID процесс – Идентификатор процесса, который требуется завершить. Используйте TaskList, чтобы получить PID.
/IM образ – Имя образа процесса, который требуется завершить. Знак подстановки “*” может быть использован для указания всех заданий или имен образов.
/T – Завершение указанного процесса и всех его дочерних процессов.
/F – Принудительное завершение процесса.
/? – Вывод справки по использованию.
1) Символ ‘*’ для параметра /IM применим только совместно с фильтрами.
2) Завершение удаленных процессов всегда будет принудительным (/F).
3) Фильтры “WINDOWTITLE” и “STATUS” не принимаются во внимание, когда компьютер является удаленным.
Примеры использования TASKKILL.
taskkill /? > taskkill.txt – выдать справку по использованию команды в текстовый файл taskill.txt
TASKKILL /IM notepad.exe – завершить процесс, исполняемым образом которого является notepad.exe . Если таких
процессов более одного – то будут завершены все.
taskkill /PID 1234 /T – завершить процесс с идентификатором 1234 и все его дочерние процессы ( /T ) . Одной командой
можно завершить несколько процессов, задавая их PID – taskkill /PID 1234 /PID 2345 /PID 800. Для определения идентификатора
процессов используется команда tasklist :
notepad.exe 824 Console 1 3 916 КБ
notepad.exe 3004 Console 1 18 812 КБ
Где 824 и 3004 – это идентификаторы процессов PID
TASKKILL /F /FI “PID ge 2000” /FI “WINDOWTITLE eq Arc*” – принудительно (/F) завершить процесс, идентификатор которого
больше или равен 2000 и заголовок окна которого , начинается с текста Arc
При завершении процессов как локально, так и удаленно, результат выполнения команды TASKKILL зависит от прав пользователя,
в контексте учетной записи которого выполняется команда.
Для использования в многопользовательской конфигурации системы, например на сервере терминалов, вместо команды TASKKILL, удобнее и безопаснее
использовать команду TSKILL, адаптированную для завершения процессов в среде конкретных пользователей удаленного рабочего стола (RDP).
Весь список команд CMD Windows
Здравствуйте, друзья сайта . Уверен, что в вашей практике бывали случаи, когда какой-либо процесс негативно сказывался на производительности компьютера. И даже зная имя, не всегда получается прекратить его работу стандартными способами, например, через диспетчер задач. Ещё одна распространённая ситуация – некое приложение неожиданно зависло и закрываться никак не желает. На помощь придёт cmd – это внутреннее средство Windows, позволяющее управлять процессами в операционной системе посредством ввода в специальное окно текстовых команд. Давайте я вам расскажу, как закрыть программу через командную строку. Это совсем несложно.
Запустить cmd и отобразить все процессы
Запустить cmd можно несколькими способами:
- Нажмите на клавиатуре Win (кнопочка с плывущим окошком) и R (языковой регистр не имеет значения). В появившееся окно «Выполнить» впишите cmd и нажмите ОК.
- Нажмите Win и X, запустите нужное средство от имени администратора.
- Напишите в поисковой строке Пуска cmd и запустите приложение cmd.exe двумя быстрыми щелчками.
- Или же начните писать в поисковой строке Пуска «команды…» и запустите первое приложение из результатов поиска двумя быстрыми щелчками.
Друзья, если вы справились с запуском cmd, значит, точно сможете найти через неё и убить тот самый злополучный процесс.
Увидеть программу, которая зависла, поможет команда tasklist. Её нужно написать в появившемся чёрном окошке (там, где мигает курсор), после чего нажать клавишу Enter. Способ одинаково актуален для всех версий Windows – 7, 8 и 10. Результатом этого действия будет появление списка всех запущенных на ПК процессов.
Закрыть программу
Вам остаётся только отыскать в появившемся перечне программу, создающую проблемы, и запомнить её PID (цифровой идентификатор). Чтобы было более понятно, рассмотрим пример. Я запущу в Windows 10 приложение для проведения видеоконференций, найду Zoom в перечне процессов через командную строку и покажу, как его завершить.
Кроме имени программы, вы увидите несколько столбиков значений. Соседний с названием столбец (цифры) — это PID (идентификатор), а последний – количество килобайт, которое он, работая, отнимает у системы.
В моём случае Zoom обозначился двумя процессами, завершение которых из командной строки возможно и по отдельности, и одновременно посредством команды taskkill. Кроме самой команды, понадобится ещё ввести ключ /f, а также:
- Атрибут IM, если мы будем использовать имя программы, тогда завершатся оба процесса. Вот как это выглядит в данном примере: taskkill /f /IM Zoom.exe (после ввода команды нужно нажать Enter).
- Атрибут PID, если мы будем вводить не имя, а идентификатор, чтобы убить один конкретный процесс: taskkill /f /PID.
Если вы не знаете, что именно тормозит вашу систему, то можете попробовать с помощью командной строки завершить все процессы и закрыть все окна, которые зависли. Для этого используйте атрибут /fi (установка фильтра) и статус «не отвечает». Команда будет выглядеть так: taskkill /f /fi «status eq not responding».
Используем «батник»
Друзья, если некая программа порядком подпортила вам нервы, постоянно запускаясь и тормозя систему, то вы можете в момент необходимости быстро закрыть её через bat-файл (в простонародье «батник»), который нужно предварительно создать. В таком случае вам не придётся постоянно обращаться к cmd и вписывать одну и ту же команду по десять раз на дню.
Батник сооружается следующим образом:
- Создайте новый текстовый документ («Блокнот»), для чего сделайте правый щелчок на пустом пространстве рабочего стола, обратитесь к инструменту «Создать» и выберите соответствующий пункт.
- Откройте полученный документ двумя быстрыми щелчками впишите в него команду taskkill /F /IM zoom.exe (у меня имя zoom.exe, вы вписываете название своей проблемной утилиты).
- Через «Файл» перейдите к инструменту «Сохранить как…», задайте любое имя (я написал «Закрыть»), после него поставьте точку и напишите расширение bat (смотрите фото).
- Нажмите «Сохранить» и на рабочем столе появится батник.
Когда злополучная программа вновь запустится и загрузит ПК, дважды быстро щёлкните по подготовленному bat-файлу, чтобы её закрыть.
Команды для терминала в Линукс
Друзья, на этом я заканчиваю статью. Надеюсь, в ней вы найдёте что-то полезное для себя. Жду ваших вопросов и оценок моей работы в комментариях. До свидания.
Обычно «убить» процесс в Windows 10 можно с помощью диспетчера задач, но в некоторых случаях эта возможность блокируется вирусами или некоторыми программами. Однако, в этих случаях можно попробовать закрыть его через командную строку или PowerShell.

Используя командную строку
Работа диспетчера задач может быть реализована с помощью инструментов командной строки: Tasklist (список задач) и Taskkill (утилита Taskkill).
- Во-первых, нам нужно найти идентификатор процесса с помощью Tasklist
- Во-вторых, мы убиваем программу, используя Taskskill.

Откройте командную строку с правами администратора, введя cmd в строке Выполнить (Win + R) и нажав Shift + Enter.
Для просмотра процессов введите следующую команду и нажмите Enter:
Taskview /fo table
Обратите внимание на идентификатор процесса, указанный в колонке Process ID.
Вы можете также прибить программу, используя точное имя.
Чтобы убить процесс по его имени, введите команду:
TASKKILL /IM "process name" /F
Так для Chrome у программы будет имя chrome.exe.
Введите команду и нажмите Enter, чтобы убить Chrome.
Taskkill /IM chrome.exe /F
Ключ /F используется для принудительной остановки процесса.

Чтобы убить процесс по его PID, введите команду:
TASKKILL /F /PID pid_number
Чтобы убить несколько процессов одновременно, запустите вышеприведенную команду с PID всех процессов через пробел.
TASKKILL /PID 2536 /PID 3316 /F
Используя PowerShell
Чтобы просмотреть список запущенных процессов, выполните следующую команду:
Get-Process
Чтобы убить процесс, используя его имя, выполните следующую команду:
Stop-Process -Name "ProcessName" -Force
Чтобы убить процесс, используя его PID, выполните следующую команду:
Stop-Process -ID PID -Force
Спасибо, что читаете! На данный момент большинство моих заметок, статей и подборок выходит в telegram канале «Левашов». Обязательно подписывайтесь, чтобы не пропустить новости мира ИТ, полезные инструкции и нужные сервисы.
Респект за пост! Спасибо за работу!
Хотите больше постов в блоге? Подборок софта и сервисов, а также обзоры на гаджеты? Сейчас, чтобы писать регулярно и радовать вас большими обзорами, мне требуется помощь. Чтобы поддерживать сайт на регулярной основе, вы можете оформить подписку на российском сервисе Boosty. Или воспользоваться ЮMoney (бывшие Яндекс Деньги) для разовой поддержки:
Заранее спасибо! Все собранные средства будут пущены на развитие сайта. Поддержка проекта является подарком владельцу сайта.
Под процессом мы будем понимать запущенную в системе копию программы. Например, если вы открыли три окна калькулятора (например, gcalctool), это значит, что вы запустили три процесса.
Находим PID зависшего процесса
Каждый процесс в Linux имеет свой идентификатор, называемый PID. Перед тем, как выполнить остановку процесса, нужно определить его PID. Для этого воспользуемся командами ps и grep. Команда ps предназначена для вывода списка активных процессов в системе и информации о них. Команда grep запускается одновременно с ps (в канале) и будет выполнять поиск по результатам команды ps. Вывести список всех процессов можно, выполнив в командной строке:
ps axu
Но, как правило, список очень большой и найти процесс, который мы хотим «убить», бывает не так просто. Здесь на помощь приходит команда grep. Например, чтобы найти информацию о процессе с именем gcalctool выполните команду:
ps axu | grep gcalctool
$ ps axu | grep gcalctool
yuriy 25587 0.0 0.0 10636 884 pts/2 S+ 10:20 0:00 grep --color=auto gcalctool
То есть мы получили сам процесс grep, так как в качестве параметра команде мы указали слово gcalctool, и grep нашел сам себя в выводе команды ps.
Если процесс gcalctool запущен, то мы получим:
yuriy@yuriy-NIX:~$ ps axu | grep gcalctool
yuriy 25609 7.6 0.4 500840 17964 ? Sl 10:20 0:00 gcalctool
yuriy 25624 0.0 0.0 10640 884 pts/2 S+ 10:21 0:00 grep --color=auto gcalctool
Здесь нас интересует строка: «yuriy 25609 7.6 0.4 500840 17964 ? Sl 10:20 0:00 gcalctool». Число 25609 и есть идентификатор (PID) процесса gcalctool.
Есть еще один более простой способ узнать PID процесса — это команда pidof, которая принимает в качестве параметра название процесса и выводит его PID. Пример выполнения команды pidof:
$ pidof gcalctool
25609
«Убиваем» процесс командой kill
Когда известен PID процесса, мы можем убить его командой kill. Команда kill принимает в качестве параметра PID процесса. Например, убьем процесс с номером 25609:
kill 25609
Вообще команда kill предназначена для посылки сигнала процессу. По умолчанию, если мы не указываем какой сигнал посылать, посылается сигнал SIGTERM (от слова termination — завершение). SIGTERM указывает процессу на то, что необходимо завершиться. Каждый сигнал имеет свой номер. SIGTERM имеет номер 15. Список всех сигналов (и их номеров), которые может послать команда kill, можно вывести, выполнив kill -l. Чтобы послать сигнал SIGKILL (он имеет номер 9) процессу 25609, выполните в командой строке:
kill -9 25609
Сигнал SIGTERM может и не остановить процесс (например, при перехвате или блокировке сигнала), SIGKILL же выполняет уничтожение процесса всегда, так как его нельзя перехватить или проигнорировать.
Убиваем процессы командой killall
Команда killall в Linux предназначена для «убийства» всех процессов, имеющих одно и то же имя. Это удобно, так как нам не нужно знать PID процесса. Например, мы хотим закрыть все процессы с именем gcalctool. Выполните в терминале:
killall gcalctool
Команда killall, также как и kill, по умолчанию шлет сигнал SIGTERM. Чтобы послать другой сигнал нужно воспользоваться опцией -s. Например:
killall -s 9 gcalctool
Заключение
Некоторые процессы не удается остановить под обычным пользователем. Например, если процесс был запущен от имени пользователя root или от имени другого пользователя системы, то команды kill и killall нужно выполнять от имени суперпользователя, добавляя sudo (в Ubuntu):
sudo kill 123
Справку по использованию любой команды можно получить командой man:
man ps
man grep
man pidof
man kill
man killall
This tutorial discusses a few PowerShell scripts that allow you to query and kill a process on a remote computer using WMI (Windows Management Instrumentation).
Sitaram Pamarthi is working as a Windows Engineer and his special fields of interest are PowerShell, Active Directory, Exchange, and virtualization.
Query process information
Get-Process -Name notepad.exe
You will get information about the process, if it is running. You can use the -ComputerName parameter with the command to check if the process is running on a given remote computer. For example:
Get-Process -ComputerName PC1 -Name notepad.exe
You can get similar information with other scripting languages like VBScript and Perl. So what is so special about PowerShell? The answer is that it helps you to get granular information about processes you are querying, such as process creation time, the owner of a given process (with which account it is started), command line information about the process, the title of the application, and much more.
Below are a few example code snippets.
Process creation time
[cmdletbinding()] param( $ComputerName=$env:COMPUTERNAME, [parameter(Mandatory=$true)] $ProcessName ) $Processes = Get-WmiObject -Class Win32_Process -ComputerName $ComputerName -Filter "name='$ProcessName'" if($Processes) { foreach ($process in $processes) { $processid = $process.handle $processcreationtime = $Process.Converttodatetime($Process.creationdate) write-host "`nThe $ProcessName `($processid`) process creation time is $processcreationtime" } } else { write-host "`nNo Process found with name $ProcessName" } write-host ""
The above script takes computer name and process name as arguments. The computer name is optional and defaults to the local computer if not provided. The process name is mandatory, and the script will throw an error if you don’t provide it. After reading the arguments, a WMI query gets the list of processes using the names in the argument and iterates through each process to get its creation date.
Process creation time
Process owner
[cmdletbinding()] param( $ComputerName=$env:COMPUTERNAME, [parameter(Mandatory=$true)] $ProcessName ) $Processes = Get-WmiObject -Class Win32_Process -ComputerName $ComputerName -Filter "name='$ProcessName'" foreach ($process in $processes) { $UserName = $process.getowner().user $DomainName = $process.getowner().domain $processid = $process.handle write-host "The owner of $ProcessName `($processid`) process is $domainname`\$username" }
This script executes in the same way as the Process creation time script.
Process path
[cmdletbinding()] param( $ComputerName=$env:COMPUTERNAME, [parameter(Mandatory=$true)] $ProcessName ) $Processes = Get-WmiObject -Class Win32_Process -ComputerName $ComputerName -Filter "name='$ProcessName'" foreach ($process in $processes) { $Executablepath = $process.ExecutablePath $Commandline = $process.Commandline $processid = $process.handle Write-Host "" Write-Host "Process Name = $ProcessName" Write-Host "Process ID = $Processid" Write-Host "Executable Path = $Executablepath" Write-Host "Command Line = $Commandline" Write-Host "" }
This Powershell script displays the process path.
Though PowerShell has a built-in cmdlet (Get-Process) to retrieve process information, in all of the above examples I have used a WMI query to get process information from the Win32_Process class. The reason I did so is because Get-Process will not provide the owner, process path, and other values.
Kill a process
To terminate a process using PowerShell, you can either use the WMI interface or use the Stop-Process cmdlet, which comes by default with PowerShell.
[cmdletbinding()] param( $ComputerName=$env:COMPUTERNAME, [parameter(Mandatory=$true)] $ProcessName ) $Processes = Get-WmiObject -Class Win32_Process -ComputerName $ComputerName -Filter "name='$ProcessName'" foreach ($process in $processes) { $returnval = $process.terminate() $processid = $process.handle if($returnval.returnvalue -eq 0) { write-host "The process $ProcessName `($processid`) terminated successfully" } else { write-host "The process $ProcessName `($processid`) termination has some problems" } }
Kill a process
This script first queries the computer for a list of running processes and then terminates them using the terminate () method. This method will return a value of 0 if the termination is successful. Any non-zero value indicates some issues.
The second method terminates a process using the Stop-Process cmdlet. Below are some usage examples:
Get-Process -Name notepad | stop-Process
Stop-Process -Name notepad
Conclusion
Querying process information using PowerShell is pretty easy. You can use PowerShell for a variety of purposes, such as reporting application usage, querying the age or the start time of a process, or maximizing, minimizing, or restoring an application window.
FlasherX, спасибо, но vbs потом может быть.
В общем, после нескольких бессонных ночей родила гора мышь )))
Что эта “мышь” делает? Сначала (секция checking1) проверяет запущен ли процесс proga.exe. Если не запущен, то завершает свою работу (уходит в секцию pause). Если запущен, то пытается выяснить и сопоставить PID proga.exe и PID dw20.exe (dw20.exe как дочернего по отношению к proga.exe). В секции checking2 проверяется действительно ли запущен этот дочерний dw20.exe. Если не запущен, то с самого начала повторяет проверку (уходит в секцию setvalues) через 1 минуту (секция tmt1) (таким образом мониторит появление дочернего dw20.exe у proga.exe). Если такой dw20.exe запущен, то завершает и его работу, и работу родительского proga.exe (секции killchild и killparent). После этого сразу с самого начала повторяет проверку (уходит в секцию setvalues).
Работает, как ни странно ))) Проверено на Windows 10 x64.
Если строку 47 (goto killparent) изменить на goto setvalues, то будет мониторить и завершать только дочерние dw20.exe без завершения их родительского proga.exe, что больше соответствует теме.
Кликните здесь для просмотра всего текста
@echo off color 1F title Killing of child and parent processes setlocal enabledelayedexpansion :setvalues set "parent=proga.exe" set "child=dw20.exe" set "parentpid=" set "childpid1=" set "childpid2=" goto checking1 :checking1 for /f "tokens=2 skip=1" %%a in ('tasklist /fi "imagename eq %parent%" /nh') do ( set "parentpid=%%a" echo %date% %time:~,-3% - The %parent% is running for /f "tokens=2 skip=1" %%b in ('wmic.exe path win32_Process where "Name='%child%' and ParentProcessID=!parentpid!" get ProcessID') do ( set "childpid2=%%b" for /f "tokens=1 skip=1" %%c in ('wmic.exe path win32_Process where "Name='%child%' and ParentProcessID=!parentpid!" get ProcessID') do ( set "childpid1=%%c" goto checking2 ) ) ) if !parentpid! equ !0! ( echo %date% %time:~,-3% - The %parent% is not running goto pause ) :checking2 if !childpid2! equ !0! ( echo %date% %time:~,-3% - The %child% is not running goto tmt1 ) if !childpid2! gtr !0! ( echo %date% %time:~,-3% - The %child% is running @echo. goto killchild ) :tmt1 timeout /t 60 /nobreak>nul cls goto setvalues :killchild echo %date% %time:~,-3% - Killing of %child% and its child processes @echo. taskkill /pid !childpid1! /f /t @echo. goto killparent @echo. :killparent echo %date% %time:~,-3% - Killing of %parent% and its child processes @echo. taskkill /pid !parentpid! /f /t @echo. goto setvalues :pause @echo. @pause exit
In all these below examples, “myremote” is my remote machine name against which I am performing these operations.
To query all processes in remote machine use below command..
wmic /node:myremote process
wmic /node:myremote process where name="outlook.exe"
wmic /node:myremote process where "name like '%outlo%'" get name
wmic /node:myremote process where name="outlook.exe" call terminate
wmic /node:myremote process where name="outlook.exe" call getowner
If you want a command for any specific requirement, please leave a note below in comments section. I will get back to you ASAP.
Happy Learning..,
Sitaram Pamarthi