Taskkill - завершение процесса из командной строки. Не завершается процесс в «Диспетчере задач»: что делать? Windows 7 не завершается процесс

Taskkill - завершение процесса из командной строки. Не завершается процесс в «Диспетчере задач»: что делать? Windows 7 не завершается процесс

Вы наверняка знакомы с традиционным способом завершить процесс в 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

Флаг /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.

Например, допустим вы хотите, завершить все процессы, у которых заголовок окна начинается с “Интернет”, то команда будет следующей:

taskkill /FI “WINDOWTITLE eq Internet*” /F

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

taskkill /FI “USERNAME eq Marina” /F

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

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

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

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

Как завершить процесс службы Windows, зависшей в статусе stopping (остановка)? Думаю, большинство администраторов Windows, встречалось с ситуациями, когда при попытке остановить (перезапустить) службу из графического интерфейса консоли управления службами (Services.msc), служба зависает намертво и висит в статусе Stopping . После этого вы не можете остановить службу в консоли, т.к. кнопки действий службы становятся недоступными. Самый простой способ – перезагрузить сервер, но это не всегда допустимо. Рассмотрим альтернативный способ, позволяющий принудительно завершить зависшую службу или процесс без необходимости перезагрузки.

Если в течении 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 letter.

Завершение зависшей службы с помощью TaskKill

Наиболее простой способ завершить зависшую служу – воспользоваться утилитой taskkill . В первую очередь нужно определить PID (идентификатор процесса) нашей службы. В качестве примера возьмем службу Windows Update, ее системное имя wuauserv (имя можно посмотреть в свойствах службы в консоли services.msc).

Довольно часто эта проблема случается , особенно после установки обновлений на Windows Server 2012 R2 / 2008 R2.

Важно . Будьте внимательными. Принудительная отставка процесса критичных служб Windows может привести к BSOD или перезагрузке системы.

В командной строке с правами администратора (это важно, иначе будет ошибка access denied):
sc queryex wuauserv

В данном случае PID процесса - 816.

Чтобы принудительно завершить зависший процесс с PID 816:

taskkill /PID 816 /F

SUCCESS: The process with PID 816 has been terminated.

Данная команда принудительно завершит процесс службы. В дельнейшем можно вернуться в консоль управления службами и вручную стартовать службу (или совсем , если она не нужна).

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

TASKKILL /F /FI “SERVICES eq wuauserv”

Или можно вообще не указывать имя, службы, завершив все сервисы в зависшем состоянии с помощью команды:

taskkill /F /FI “status eq not responding”

После этого служба, зависшая в статусе Stopping должна остановиться.

Принудительное завершение зависшей службы из PowerShell

Также вы можете использовать PowerShell для принудительной остановки службы. С помощью следующей команды можно получить список служб, находящихся в состоянии Stopping:

Get-WmiObject -Class win32_service | Where-Object {$_.state -eq "stop pending"}

Завершить процесс для всех найденных служб поможет командлет Stop -Process . Объединив обе операции в цикл, получим скрипт, автоматически завершающий все процессы подвисших служб в системе:

$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"
}

Анализ зависших процессов с помощью Resmon

Вы можете определить процесс, из-за которого зависла служба с помощью монитора ресурсов resmon.


Process Explorer: Завершение зависшего процесса из-под SYSTEM

Некоторые процессы, запущенные из-под SYSTEM, не может завершить даже локальный администратора сервера. Дело в том, что у него просто может не быть прав на некоторые процессы или службы. Чтобы завершить такие процесс (службы), вам необходимо предоставить локальной группе Administrators права на службу (процесс), а потом завершить их. Для этого нам понадобятся две утилиты: psexec.exe и ProcessExplorer (доступны на сайте Microsoft).


Пользователям персональных компьютеров приходится сталкиваться с разными проблемными ситуациями, решить которые иногда затруднительно самостоятельно. Однако, обнаружив ответ на проблемный вопрос, в следующий раз такие задачи уже не кажутся сложными. Завершить процесс, в котором уже нет необходимости, в большинстве случаев может даже новичок. К сожалению, иногда приходится сталкиваться с тем, что, какие бы попытки ни были предприняты, не завершается всё равно процесс в диспетчере задач .

Что же делать, когда какой-то процесс «взбунтовался» и не желает подчиниться, как всё-таки осуществить его завершение, можно узнать, если ознакомиться с нашими рекомендациями. Мы поделимся нехитрыми способами, поможем вам овладеть навыками управления всеми процессами, которые запущены на вашем компьютере.

Если в процессе работы на компьютере вы стали замечать, что он заметно подвисает , значит, ему тяжело выполнять все возложенные на него задачи. Это происходит, когда вы запускаете множество процессов, а потом их просто забываете остановить.

Конечно, если не увлечься открыванием новых приложений, то с проблемой зависания компьютера удастся сталкиваться реже. Ну а если вы всё-таки очень увлечённо работали, поэтому сами не заметили, как открыли много окон, запустили на выполнение несколько программных приложений и утилит, то закрыть их простым нажатием на кнопку «Выхода», может не получиться.

Алгоритм действий

Для завершения нежелательных процессов, отказывающихся подчиняться пользователю, нужно воспользоваться помощью «Диспетчера задач ». Если у вас установлен Windows 7, достаточно кликнуть правой клавишей мышки по нижней панели задач, выбрать параметр «Запустить Диспетчер задач».

Шаг 1

В открывшемся окне на первой вкладке кликните по той утилите, которая вам уже не нужна, а далее в нижней части окна выберите параметр «Снять задачу». Если процесс не совсем безнадёжен, он остановится.

Шаг 2

Можно перейти на вторую вкладку «Процессы», точно также кликнуть по той строке, которая провоцирует в конкретный момент проблемы, а затем нажать на кнопку «Завершить».

К сожалению, даже такие советы иногда для некоторых пользователей оказываются совершенно бесполезными, поскольку всё равно не закрывается процесс в Диспетчере задач.

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

Шаг 3

Итак, не произносите фраз типа: «Не могу завершить процесс в Диспетчере задач», а лучше воспользуйтесь уникальными возможностями служебной команды taskkill. Эту команду многие готовы рассматривать в качестве мощнейшего инструмента.

Чтобы запустить такую команду, сначала, конечно же, нужно открыть командную строку, зажав одновременно две клавиши: «Win» и «R». В открывшемся маленьком окошке введите «cmd».

Шаг 4

Теперь вам нужно будет набрать «taskkill» и нажать «Enter». Однако чтобы справиться с неуправляемым процессом к этому слову следует присоединить дополнительную опцию.

В частности, можно завершить процесс при помощи команды taskkill, используя имя приложения, которое отказывается завершаться. Для этого наберите небольшую командную фразу: taskkill / IM «имя приложения». Конечно, вместо словосочетания «имя приложения» вы должны набрать тот процесс, который у вас нет мочи остановить. Например, taskkill / IM excel.exe. Если вы воспользуетесь нашим примером, то в этом случае прекратит работать табличный редактор Excel. Выбирайте ваш процесс, приносящий вам ужасные хлопоты, и прописывайте в команде его имя.

В окне процессы отображаются не только с указанием своего имени, но и идентификатора в том числе. Если вы желаете, вы можете набрать такую командную фразу: taskkill / PID 574, где число 574 будет являться идентификатором проблемного процесса.

Шаг 5

Если на компьютере имеются несколько учётных записей , при этом абсолютно понятно, что зависание возникло именно по причине незавершённых процессов одного из пользователей, можно воспользоваться и такой командной фразой: «taskkill / F / FI «USERNAME eq имя_пользователя». Понятно, что в ней придётся вам самостоятельно изменить непосредственно имя пользователя, по вине которого возникла проблема.

Команда «taskkill», действительно, является мощнейшим инструментом, которому не могут противостоять даже вирусы и троянцы. Такая команда успешно завершает даже их негативную и упорную «деятельность».

Итоги

Мы уверены, что, ознакомившись с изложенными нами советами, вы сможете впоследствии твёрдо говорить своим знакомым: «Я могу без проблем останавливать работу любой программы, приложения». Овладев такими практическими навыками, вы сможете ещё сильнее «подружиться» с вашим компьютером.

Нечасто, конечно, но иногда можно встретить ситуации, когда после закрытия программы в «Диспетчере задач» не завершается процесс, отвечающий за ее функционирование, или продолжают работать какие-то дополнительные (сопутствующие) службы приложения. При этом система в дополнение ко всему может сообщать, что пользователю для завершения определенного процесса не хватает прав (отказано в доступе). Почему так происходит и как остановить работу ненужных или зависающих программ, читайте в ниже представленном материале.

Не завершается процесс в «Диспетчере задач» (отказано в доступе). Почему?

Чтобы понять, какое именно решение по устранению возникшей проблемы использовать в каждом конкретном случае, для начала следует выяснить причины, вследствие которых они возникают. Почему же в «Диспетчере задач» не завершается процесс с указанием на отсутствие прав доступа?

Действительно, иногда это может быть связано с тем, что пользователь вошел в систему не под регистрацией администратора и пытается завершить критически важную системную службу или процесс, запущенный другим пользователем. Однако невозможность остановки работы какого-то приложения в основном связана даже не с системными процессами, а с программами, которые могли установиться на пользовательский компьютер самопроизвольно (вирусы, рекламные апплеты и т. д.). Обычно именно они могут блокировать завершение работы. Но бороться с такими проявлениями поведения и системных, и пользовательских программ или служб можно довольно просто.

Перезагрузка системы

Если не завершается процесс в «Диспетчере задач», что делать в первую очередь? Как правило, рядовые пользователи поступают достаточно просто. Если по каким-то причинам в «Диспетчере задач» Windows 10 не завершается процесс, они попросту перезагружают систему. Понятно, что полный рестарт и приводит к остановке всех служб. Но что если после перезагрузки процесс активируется снова? А ведь некоторые процессы, запускаемые вместе с системой, нельзя отследить даже в стандартном разделе автозагрузки.

Впрочем, если пользователь вошел в систему не под администраторской, а под собственной учетной записью, как уже понятно, нужно просто сменить пользователя.

Если не хотите постоянно перепрыгивать с одной записи на другую, администраторскую «учетку» можно и вовсе отключить, прописав в командной строке команду «net user Администратор active:no» (без кавычек). После этого все программы будут стартовать только с правами администратора (для некоторых приложений не будут выдаваться даже предупреждения безопасности службы контроля учетных записей UAC, которые многих пользователей несказанно раздражают).

Завершение активных процессов через командную строку

Но приведенные выше действия положительный эффект могут дать не всегда. Что же делать, если в «Диспетчере задач» не завершается процесс, который, скажем, перегружает центральный процессор или использует оперативную память слишком усердно? В такой ситуации оптимальным инструментом из тех, которые имеются в Windows-системах, станет командная консоль (cmd).

Ее необходимо запустить от имени админа (если учетная запись суперпользователя не отключена), а затем воспользоваться командой taskkill (всю информацию о дополнительных атрибутах можно просмотреть посредством ввода строки «taskkill /?».

Из всего списка нас более всего интересуют атрибуты «/F» и «/IM», которые дописываются после основной команды. Как это выглядит? Предположим, у нас в «Диспетчере задач» не завершается процесс «Гугл Хром». Команда принудительной остановки приложения будет выглядеть так: «taskkill /F /IM Chrome.exe» (опять же, без кавычек). Как уже понятно, такое решение приемлемо для исполняемых файлов программ. Если воспользоваться дополнительным ключом «/T», при вводе основной команды завершения работы выбранного приложения автоматически будут завершены и все дочерние процессы.

Остановка процессов с указанием идентификаторов

Если таким способом в «Диспетчере задач» не завершается процесс, который был выбран пользователем, например, при неправильном вводе имени исполняемого файла проблемной программы или службы, остановку процесса можно произвести с указанием идентификатора.

Его можно просмотреть в самом «Диспетчере задач», дополнительно активировав отображение столбца с ИД процесса. Основная же команда в этом случае примет такой вид: «taskkill /F PID 0000», где 0000 - определенный в «Диспетчере задач» идентификатор процесса.

В принципе, проблему, связанную с тем, что в «Диспетчере задач» не завершается процесс какой-то программы, можно решить, следуя советам специалистов Microsoft, которые опубликованы на странице поддержки. Суть состоит в том, чтобы загрузить с сайта специальный архив, содержащий набор инструментов PSTools, затем распаковать его на жесткий диск и переместить файл PsExec.exe или объект PsExec64.exe, в зависимости от архитектуры системы, в корень системного раздела (диска «С»), а затем через командную консоль выполнить команду «c:\psexec -i -d -s taskmgr.exe» (без кавычек). После этого в «Диспетчере задач» нужно будет выполнить все необходимые действия, связанные с остановкой определенных процессов, затем закрыть «Диспетчер» и удалить исходный файл PsExec из системного раздела.

Примечание: использовать этот метод даже на сайте корпорации рекомендуется только на свой страх и риск.

Использование утилиты Process Explorer

Куда проще воспользоваться небольшим приложением которое является альтернативой «Диспетчера задач», но с расширенными возможностями. Преимущество этой программы состоит в том, что устанавливать ее на жесткий диск не нужно, поскольку приложение изначально является портативным и запускается из одного исполняемого файла. После старта программы в ней достаточно выбрать искомый незавершаемый процесс или даже целое дерево процессов с дочерними апплетами, выбрав из меню ПКМ команды Kill Process или Kill Process Tree.

Кроме «убивания» ненужных процессов и задач эта утилита предоставляет еще и дополнительную информацию. Так, например, если это требуется, можно совершенно просто узнать, какой именно программой запущен тот или иной процесс.

Разблокирование доступа к файлам процесса

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

Сначала, как уже понятно, восстанавливается доступ к исходному файлу (узнать его можно непосредственно в «Диспетчере задач», выбрав из меню ПКМ просмотр расположения файла), а затем процесс завершается обычным способом.

Проблемы вирусного воздействия

Вирусы, к сожалению, ограничивать доступ к остановке процессов и служб тоже могут. И далеко не всегда это связано напрямую с самими вирусными апплетами. Если такая ситуация наблюдается, для начала рекомендуется проверить систему каким-нибудь портативным антивирусом, а при невозможности нейтрализации угроз обратиться к программе Kaspersky Rescue Disk, при помощи которой можно загрузиться еще до старта системы со съемного носителя, а затем выполнить глубокое сканирование, которое включает в себя даже оперативную память.

Краткий итог

Вот, собственно, и все, что касается принудительного завершения процессов в «Диспетчере задач». Что касается наилучшего инструмента, самым простым выглядит альтернативный менеджер Process Explorer. Если же под рукой такой программы нет, подойдет и командная строка. Единственное условие для выполнения всех вышеописанных команд - старт самой консоли с правами администратора.

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

На обычных рабочих станциях данная команда не особо востребована, так как можно завершить процесс через диспетчер задач. Хотя, не всегда это получается и в данной ситуации команда Taskkill пригодится, но, это скорее исключение из правил.

В основном, данная команда используется системными администраторами и лично я сталкивался со следующими ситуациями:

1) Обновление программ на терминальном сервере – при администрировании терминального сервера большое количество людей может запустить одно и тоже приложение. Но, в большинстве случаев, при обновлении программы её необходимо сначала закрыть, т.е. завершить её процесс. Если клиентов не много, то, можно воспользоваться диспетчером задач, а если их порядка 100, то это уже проблематично. А команда Taskkill позволяет убить все процессы для определенного приложения.

2) Автоматический перезапуск программы – как вы знаете не все программы работают идеально и бывает, что они подвисают. А если данная программа должна работать 24 часа в сутки и 7 дней в неделю, то приходится периодически проверять её работоспособность.

Лично я сталкивался со следующей ситуацией: есть интернет магазин, в который данные о товарах выгружаются из 1С-ки. Но, обработчик написан как-то криво, в результате чего обмен подвисает раз в сутки, а то и через каждые 2-3 часа. По этому, появилась необходимость каждый час принудительно перезапускать обработчик, не зависимо от того, подвисла программа или нет.

И так, перейдем к практике.

Запустим браузер Google Chrome и попробуем завершить его процесс (Пуск \ Стандартные \ Выполнить \ cmd \ taskkill /? - чтобы посмотреть синтаксис команды)

/s КОМПЬЮТЕР, где КОМПЬЮТЕР - это IP или адрес удаленного компьютера. По умолчанию, операция выполняется в локальной системе. Если именно это вас и интересует, данную опцию можно не использовать.

/u ДОМЕН\ПОЛЬЗОВАТЕЛЬ , где ДОМЕН - это имя домена, а ПОЛЬЗОВАТЕЛЬ - имя пользователя, для которого нужно выполнить команду. Данная опция позволяет запускать taskkill с правами определенной учетной записи или домена.

/p - обязательно используется в сочетании с опцией /u для указания пароля к учетной записи пользователя.

/fi - позволяет выполнять команду taskkill с определенными фильтрами.

/f - принудительно завершает выполнение команды.

/IM - позволяет использовать имя приложения вместо идентификатора процесса.

/T - завершение дерева процессов.

Теперь нам нужно узнать имя приложения, которое использует данный процесс. Это можно сделать через диспетчер задач (Ctrl + Alt + Del \ Запустить диспетчер задач \ Процессы \ chrome . exe ).

Если у вас нет возможности запустить диспетчер задач, допустим, вы подключились к компьютеру удаленно через командную строку, то можно воспользоваться командой tasklist , она так же отображает все процессы.

Taskkill / f / im chrome . exe – принудительно завершить приложение с именем chrome.exe

Chrome завершил работу, но появились ошибки «Не удалось завершить процесс, ни один из экземпляров задания не запущен». Данное сообщение появляется из-за того, что эти процессы были связанными и когда завершил работу основной, остальные автоматически завершились.

Теперь запустим Chrome под разными пользователями, чтобы сымитировать работу терминального сервера, для этого запустим под обычным пользователем и под пользователем XP (Chrome \ Shift \ ПКМ \ Запустить от имени другого пользователя \ ОК ). Теперь мы видим, что одно и тоже приложение запущено под разными пользователями, повторим команду Taskkill / f / im chrome . exe , чтобы проверить, для всех ли пользователей будет завершен процесс.

Теперь попробуем сделать автоматический перезапуск приложения, в этом нам поможет планировщик задач (Пуск \ Все программы \ Стандартные \ Служебные \ Планировщик заданий \ Библиотека планировщика \ ПКМ \ Создать папку \ Перезапуск Chrome – в зависимости от вашей цели )

Создаем задачу на запуск (Создать новую задачу \ Запуск \ Выполнять с наивысшими правами \ Триггер: по расписанию, ежедневно, начиная с 11:00, повторять каждый час бесконечно, включено \ Действия: запуск программы, chrome \ ОК )

Создадим задачу на завершение процесса (Создать новую задачу \ Завершение \ Выполнять с наивысшими правами \ Триггер: по расписанию, ежедневно, начиная с 10:59:50, повторять каждый час бесконечно, включено \ Действия: запуск программы, Taskkill , дополнительные аргументы: / f / im chrome . exe \ ОК )

Теперь запустим Chrome и подведем часы к более близкому времени, чтобы увидеть, как Хром завершит работу, а потом запустится заново.

Однако, порой требуется запретить только процесс запущенный под определенным пользователем. Именно такая ситуация у меня возникла с обработчиком 1С, который выгружал данные о товарах на сайт.

Дело в том, что, можно каждый час перезапускать зависшую 1С-ку, но, если завершать все процессы 1С, то все удаленные пользователи будут из неё вылетать, а этого нельзя допустить. По этому, нужно завершать процесс, запущенный из под определенной учетной записи.

Для этого в дополнительные аргументы добавим следующую строчку / fi username eq station -4-7” данная команда фильтрует по имени пользователя и завершает процесс только того, чье имя совпадает с указанным в фильтре.

Запустим Chrome под другим пользователем и посмотрим, сработал ли фильтр.

просмотров