Если вы являетесь администратором ИТ-поддержки, иногда вы можете столкнуться с ситуацией, когда процесс службы Windows зависает на « Остановка » или « Не отвечает ». Затем им нужно будет убить Windows, которая зависает при остановке.
Эта ситуация возникает, когда вы пытаетесь остановить службу, но это не позволяет вам это сделать. Кроме того, кнопки управления для службы заморожены, и, следовательно, вы не можете остановить службу из диспетчера управления службами/services.msc. Хотя вы можете перезагрузить компьютер с Windows 10 и проверить, решает ли он проблему, в большинстве случаев он может не работать. Вместо перезагрузки сервера вы можете попробовать убить службу Windows, которая зависает при остановке. Посмотрим, как.
Метод 1. Использование Taskkill в командной строке
Узнать название службы
Шаг 1. Щелкните правой кнопкой мыши Пуск и выберите Выполнить , чтобы открыть окно Выполнить команду .
Шаг 2. В окне Выполнить команду введите services.msc и нажмите Enter , чтобы открыть Сервисный менеджер.
Шаг 3. В окне Службы найдите службу, которая зависла.
Запишите Службу имя.
* Примечание. Например, мы столкнулись с проблемой со звуком Realtek , поэтому дважды щелкнули Realtek Audio Service .
Затем в диалоговом окне Realtek Audio Service мы отметили имя Service , которым является RtkAudioService .
Узнать PID службы и убить PID
Шаг 1. Нажмите сочетания клавиш Win + R , чтобы открыть окно Выполнить команду .
Шаг 2. В поле поиска введите cmd и одновременно нажмите клавиши Ctrl + Shift + Enter , чтобы открыть команду Command Подсказка в режиме администратора.
Шаг 3. Скопируйте и вставьте приведенную ниже команду в окно Командная строка ( администратор ):
sc queryex servicename
* Примечание. Замените выделенную часть на службу, названную вами выше.
Шаг 4. Запишите PID службы.
Шаг 5. Теперь в том же окне Командная строка с повышенными привилегиями выполните команду ниже и нажмите Enter :
taskkill/f/pid [ PID ]
* Примечание. Замените выделенную часть на PID , скопированный на шаге 4 .
Шаг 6: После успешного завершения процесса вы получите следующее сообщение:
Процесс с PID XXXX был прекращен
* Примечание. Убедитесь, что вы завершили правильный процесс, а не критическую службу Windows, которая может заставить ваш компьютер автоматически перезагружаться.
Метод 2. Остановка служб Windows с помощью PowerShell
Windows PowerShell -еще один вариант, с помощью которого можно принудительно остановить службу. Вот как:
Шаг 1. Щелкните правой кнопкой мыши меню Пуск и выберите Windows PowerShell ( Администратор ).
Шаг 3. Скопируйте и вставьте приведенную ниже команду в Windows PowerShell ( администратор ) и нажмите Enter . чтобы получить список услуг в состоянии остановки:
Get-WmiObject-Class win32_service | Where-Object {$ _. State-eq'остановить ожидание}
Шаг 4: Теперь вы можете завершить процессы всех обнаруженных служб с помощью командлета Stop-Process .
Вы можете создать цикл добавив обе операции и получив команду, которая автоматически убивает все зависшие сервисные процессы.
Метод 3. Поиск процесса зависания в мониторе ресурсов
Resource Monitor-еще одно приложение, которое может помочь вам найти процесс, который привел к зависанию процесса. Посмотрим, как:
Шаг 1. Щелкните правой кнопкой мыши Пуск и выберите Выполнить .
Шаг 2. Откроется окно Выполнить команду .
Здесь введите Resmon в поле поиска и нажмите Enter , чтобы открыть приложение Resource Monitor .
Шаг 3. Выберите вкладку ЦП и найдите зависший процесс.
Щелкните процесс правой кнопкой мыши и выберите Анализировать цепочку ожидания .
Шаг 4: в окне Анализ цепочки ожидания вы увидите, что выбранный вами процесс ожидает другого процесса.
Выберите поток (-ы) процесса и нажмите кнопку Завершить процесс ниже.
* Примечание. Убивать его не нужно, если вы ждете svchost.exe или другого процесса.
Вы также можете проанализировать цепочку ожидания этого процесса.
Найдите PID процесса, которого ожидает файл svchost.exe, и завершите его.
Метод 4. Убивая зависший процесс с помощью Process Explorer
Даже если вы являетесь локальным администратором, у вас может не быть разрешений для некоторых процессов, и в результате вы не сможете убить некоторые процессы, связанные с СИСТЕМОЙ . Следовательно, чтобы завершить такие процессы, вы должны предоставить достаточно разрешений локальным администраторам. Для этого вам понадобятся две утилиты- psexec.exe и ProcessExplorer .
Шаг 1. Перейдите по указанной ниже ссылке (официальная страница загрузки Microsoft), чтобы загрузить приложение Process Explorer .
https://docs.microsoft.com/en-us/sysinternals/downloads/process-explorer
Шаг 2. Откройте папку Zip и перетащите файл procxp.exe на рабочий стол.
Шаг 3. Теперь щелкните его правой кнопкой мыши и выберите Запуск от имени администратора .
Шаг 4. В окне Обозреватель процессов перейдите в левую часть окна и в разделе Процесс выберите процесс, который завис при остановке.
Щелкните его правой кнопкой мыши и выберите Свойства .
Шаг 5. В диалоговом окне Свойства выберите вкладку Службы и нажмите Разрешения .
Шаг 6. Теперь в диалоговом окне Разрешения в разделе Безопасность перейдите к Группы или имена пользователей. и выберите Администраторы .
Затем перейдите в поле Разрешения для администраторов и установите флажок Разрешить рядом с Полный доступ .
Нажмите ОК , чтобы сохранить изменения.
Шаг 7. Еще раз нажмите OK в окне Свойства , чтобы применить изменения и выйти.
Теперь попробуйте отключить службу Windows, которая зависает при остановке .
Многие пользователи также сообщают, что иногда простая перезагрузка системы может помочь решить проблему. Если проблема не исчезнет, обратитесь в службу поддержки Microsoft и запланируйте ее на какой-то нечетный час, и это иногда должно решить проблему.