Не удалось остановить службу служба регистрации ошибок windows

Как принудительно завершить процесс зависшей службы в Windows?

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

Если в течении 30 секунд после попытки остановки службы, она не останавливается, Windows выводит сообщение:

При попытке остановить такую службу командой: net stop wuauserv, появляется сообщение:

The service is starting or stopping. Please try again letter.

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

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

В командной строке с правами администратора (это важно, иначе будет ошибка 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:

Читайте также:  Как настроить linux для анонимности

Get-WmiObject -Class win32_service | Where-Object

Завершить процесс для всех найденных служб поможет командлет 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.

  1. В окне Монитора ресурсов перейдите на вкладку ЦП (CPU) и найдите процесс зависшей службы;
  2. Выберите пункт Анализ цепочки ожидания (AnalyzeWaitChain);
  3. В новом окне скорее всего вы увидите, что вам процесс ожидает другой процесс. Завершите его. Если выполняется ожидание системного процесса svchost.exe, завершать его не нужно. Попробуйте проанализировать цепочку ожидания для этого процесса. Найдите PID процесса, которого ожидает ваш svchost.exe и завершите его.

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

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

  1. Для запуска ProcessExplorer с правами системы (SYSTEM), его нужно стартовать таким образом: PSExec -s -i ProcExp.exe
  2. В списке процессов Process Explorer найдите процесс зависшей службы и откройте ее свойства;
  3. Перейдите на вкладку Services, найдите свою службу и нажмите кнопку Permissions;
  4. В разрешения службы предоставьте права FullControl для группы администраторов (Administrators). Сохраните изменения;
  5. Теперь попробуйте завершить процесс службы.

Для чего нужна служба «Windows Error Reporting» и как отключить ее в Windows 7, 8.1 и 10

Когда в работе какой-то программы происходит ошибка, Windows автоматически регистрирует это событие и запускает штатную утилиту Windows Error Reporting, которая формирует отчет и предлагает отправить его на сервера Microsoft. Отправка лога не осуществляется автоматически, более того, большинство пользователей предпочитают не делиться информацией о программных ошибках и были бы не прочь отключить эту функцию вообще.

В Windows 7 и 8.1 это можно сделать через графический интерфейс системы, если же вы хотите отключить Windows Error Reporting в Windows 10, нужно отредактировать один ключ в реестре или изменить значение соответствующей ему политики в редакторе gpedit.msc . Существует и универсальный способ, одинаково подходящий для всех версий Windows, но о нём будет сказано ниже.

Отключение Error Reporting в Windows 7 и 8.1

Откройте через окошко «Выполнить» ( Win + R ) Центр поддержки командой wscui.cpl апплет «Центр поддержки».

Нажмите в меню справа ссылку «Параметры центра поддержки».

На следующей странице нажмите ссылку «Параметры отчета о неполадках».

И активируйте радиокнопку «Не проверять на наличие новых решений».

Отключение Error Reporting в Windows 10

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

Откройте через окошко «Выполнить» одноименной командой редактор реестра Regedit и раскройте ключ:

HKLM\SOFTWARE\MicrosoftWindows\Windows Error Reporting

Справа создайте новый DWORD -параметр.

Назовите его Disabled и задайте в качестве его значения единицу.

Сохраните настройки, закройте редактор реестра и перезагрузите компьютер.

Описание примера отключения функции Error Reporting через редактор групповых политик мы опускаем, поскольку его результат является эквивалентным применяемому твику реестра, к тому же редактор gpedit.msc доступен не всех редакциях Windows.

Универсальный способ отключения Error Reporting

Предложенный ниже способ является универсальным и одинаково работает в Windows 7, 8.1 и Windows 10.

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

Отыщите справа службу «Служба регистрации ошибок Windows», откройте ее свойства и выставьте параметры так, как показано на скриншоте после чего сохраните настройки.

Любители командной строки могут отключить ее через консоль.

Запустив командную строку или PowerShell от имени администратора и выполните в ней команду:

sc config wersvc start=disabled

gpupdate /force

Чтобы обновить политику без перезагрузки компьютера.

Как принудительно завершить зависшую службу?

Я думаю, что большинство пользователей встречались с такой проблемой, как зависание служб в Windows, причем, попытка принудительного завершения такой службы не увенчалась успехом, и она весит в режиме “Stopping”. Из графического интерфейса перезапустить или принудительно завершить службу тоже не удается, а перезагрузка самого сервера, в нашем случае компьютера, не всегда может быть допустимым.

Сейчас мы рассмотрим способ, который поможет вам принудительно завершить процесс, который завис, при этом, само устройство перезапускать не нужно.

Как принудительно завершить зависшую службу?

Итак, как только пройдет 30 секунд и видно, что служба не остановилась, то Windows выведет следующее сообщение:

Не удалось остановить службу xxxxxxx Windows на локальном компьютере. Ошибка 1053. Служба не ответила на запрос своевременно.

Быстро и без усилий завершить работу зависшего процесса можно при помощи утилиты taskkill. Перед этим вам нужно будет определить PID процесса (службы). В пример мы будем использовать службу Windows Update, системное имя процесса – wuauserv.

Внимание! Если вы завершите важный процесс, то это может привести к перезагрузке системы или BSOD (экран смерти).

Теперь открываем командную строку с правами админа, если так не сделать, то может выйти ошибка. В командную строку вводим следующее:

sc queryex wuauserv

Таким образом, мы узнали PID службы – 708

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

taskkill /PID 708 /F

Появится сообщение, что служба “Центр обновлений Windows” завершена. Можно потом вернуться в управление службами и там снова запустить процесс, либо вообще его удалить, если вы не пользуетесь им.

Есть еще один метод принудительного завершения процесса, при этом, не нужно узнавать PID. В этом деле нам поможет уже знакомая утилита PowerShell. Запускаем ее от имени администратора.

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

Get-WmiObject -Class win32_service | Where-Object

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

$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”
>

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

Как в Windows завершить работу зависшей службы

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

И больше ни на что ни реагирует. А спустя 30 секунд вы получаете следующее сообщение:

Не удалось остановить службу NAMESERVIS Windows на локальном компьютере.
Ошибка 1053. Служба не ответила на запрос своевременно.

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

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

Это действие перебросит вас к процессу службы, который затем можно будет завершить в принудительном режиме .

Завершить работу службы можно и через запущенную от имени администратора командную строку с помощью штатной утилиты taskkill . Выглядит команда следующим образом:

taskkill /PID № службы /F

Подсмотреть PID можно во вкладке диспетчера задач «Службы» или выполнив команду sc queryex name , где name — системное (латинское) имя службы.

Результатом выполнения команды taskkill с PID и параметром F должно стать сообщение «Процесс, с идентификатором успешно завершён» .

Оцените статью
Adblock
detector