Как остановить, запустить, отключить службы

Привет всем! Как-то я рассказывал про отключение служб windows 7 для повышения производительности, а в этой статье я покажу как можно отключать системные службы вручную, а как автоматически.
При настойке операционной системы, очень часто приходится выполнять одни и те же действия, по отключению одних и тех же служб. Это меня раздражало и я никак не мог найти способ по его автоматизации. Но теперь я создал файл, который автоматически отключает ненужные мне службы. Если и у вас есть такая потребность, то читайте ниже, как это можно осуществить!)
В Windows 7, 8, 10, чтобы работать со службами, нужно:
- Открыть пуск
- Нажать правой кнопкой мыши по компьютеру и выбрать управление
- Перейти службы и управления
- Службы. Появится список служб.

Как вручную остановить службу?
- Для того чтобы остановить службу, кликаем правой кнопкой мыши и выбираем свойство
- Нажимаем остановить

Как вручную запустить службу?
- Для того чтобы запустить службу, кликаем правой кнопкой мыши и выбираем свойство
- Нажимаем запустить

Как вручную отключить службу?
- Для того чтобы отключить службу, кликаем правой кнопкой мыши и выбираем свойство
- Нажимаем остановить (можно и без этого, но тогда придется перезагружать компьютер, чтобы она была отключена)
- Выбираем тип запуска отключена (часто люди интересуются как остановить службу обновления windows, как раз таким способом и нужно)

Когда я писал статью про то какие службы можно отключить, меня просили написать скрипт, который автоматически отключал необходимые службы автоматически. И решение я нашел недавно. Для этого необходимо остановить службу из командной строки. Но опять же с одной стороны это выглядит сложно, но в конце статьи я вас научу, как это делать просто.
Как автоматически остановить, запустить, отключить службу?
Для начала скачайте мой шаблон. Это службы, который я обычно отключаю сразу, как поставлю хороший антивирус.
Теперь смотрите нужные нам команды (команды берутся без кавычек):
- «net stop имя_службы» — эта команда останавливает службу
- «net start имя_службы» — эта команда запускает остановленную службу
- «sc config имя_службы start= значение» — эта команда меняет тип запуска службы.
Поле «значение» может быть 3 типов:
- auto (автоматически);
- demand (по требованию, вручную);
- delayed-auto (отложенный запуск);
Поле «имя_службы» можно узнать следующим образом:
- Кликаем правой кнопкой мыши по необходимой службе и выбираем свойство
- Имя службы это и есть то имя, которое нам нужно

Теперь кликаем по скачанному файлу (Отключаем ненужные службы.bat) выше правой кнопкой мыши и нажимаем изменить.

У меня первая строчка останавливает службу, а вторая отключает её и так повторяется 4 раза с разными службами. В конце пауза, чтобы можно было посмотреть, что было сделано.
- Т.е. ищем название службы
- Пишем команду остановки или запуска
- Пишем команду типа запуска
- Сохраняем файл
- Кликаем по нему просто два раза кнопкой мыши и все. Скрипт будет автоматически выполнять ваши команды.
Таким образом, если вы часто что-то отключаете или останавливаете, вам просто необходим этот способ для экономии вашего времени!
Как принудительно завершить зависшую службу в Windows?
05.08.2021
itpro
Windows 10, Windows Server 2016, Windows Server 2019
комментариев 5
Как завершить процесс службы Windows, которая зависла в статусе stopping (остановка) или starting (запуск)? Большинство администраторов Windows встречалось с ситуациями, когда при попытке остановить (перезапустить) службу из графического интерфейса консоли управления службами ( Services.msc ), служба зависает намертво и висит в статусе Stopping (или Starting). При этом все кнопки управления службой в консоли (Start, Stop, Restart) становятся недоступными (серыми). Самый простой способ – перезагрузить сервер, но это не всегда допустимо. Рассмотрим альтернативные способы, позволяющие принудительно завершить зависшую службу или процесс без необходимости перезагрузки Windows.

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

Как остановить зависшую службу Windows из командной строки?
Самый простой способ завершить зависшую служу – воспользоваться утилитой taskkill. В первую очередь нужно определить PID (идентификатор процесса) нашей службы. В качестве примера возьмем службу Windows Update. Ее системное имя wuauserv (имя можно посмотреть в свойствах службы в консоли services.msc ).
Отройте командную строку с правами правами администратора (иначе будет ошибка access denied) и выполите команду:
sc queryex wuauserv
В данном случае PID процесса — 9186 .
Чтобы принудительно завершить зависший процесс с PID 9186 воспользуйтесь утилитой taskkill:
taskkill /PID 9168 /F

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

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

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

- В разрешения службы предоставьте права FullControl для группы администраторов (Administrators). Сохраните изменения;

- Теперь попробуйте завершить процесс службы.
Таймаут, в течении которого 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).
Как принудительно завершить зависшую службу?
Я думаю, что большинство пользователей встречались с такой проблемой, как зависание служб в 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 11 отключить службы?
Как и в случае со всеми версиями и сборками операционных систем Windows, в Windows 11 присутствуют «ненужные» службы, которые пользователь может отключить в целях сокращения оказываемой ими нагрузки на процессор, диск, оперативную память, сетевое подключение и т.д. Перманентное отключение служб осуществляется через системное приложение «Службы», а если же их следует выключить на время, можно воспользоваться «Диспетчером задач». Возможны и другие варианты, в т.ч. при использовании сторонних утилит.
Как запустить программу «Службу» в Windows 11?
Запуск системного приложения «Службы» произвести несколькими способами. Рассмотрим основные:
Запуск программы «Службы» из меню «Пуск»
Откройте меню «Пуск» и введите в поисковую строку запрос «Службы», затем кликните по отобразившемуся одноименному значку:
Запуск «Служб» из окна «Выполнить»
Нажмите на клавиатуре клавиши «Win + R», чтобы открыть окно «Выполнить», затем без кавычек впишите в него команду «services.msc» и нажмите «ОК»:

Данная команда также может быть использована в командной строке Windows и в консоли PowerShell.
Запуск приложения «Службы» через «Проводник»
Программа «Службы», как и любая другая, хранится на диске в виде файла (в данном случае — «services.msc»). Чтобы добраться до нее, нужно перейти по адресу (просто скопируйте его и вставьте в адресную строку «Проводника»):
C:\Windows\System32

Приведенный выше адрес актуален только в случае, если система установлена на «Локальном диске C». Если это другой диск (D,E и т.д.), просто смените «C» на нужную букву.
Запуск «Служб» из «Диспетчера задач»
Сначала запустите «Диспетчер задач», используя комбинацию клавиш «Ctrl + Shift + Esc» или кликнув правой кнопкой мыши по значку «Пуск» и затем выбрав нужный пункт в отобразившемся меню:

В самом окне «Диспетчера задач» перейдите во вкладку «Службы», кликните правой кнопкой мыши по любой службе и выберите из выпадающего меню пункт «Открыть службы»:

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

Почему это временный способ? Дело в том, что у каждой службы присутствует параметр «Тип запуска». Если в нем выставлено значение «Вручную» или «Автоматически», то служба будет повторно запущена по запросу какой-либо программы, системы или даже другой службы.
Как навсегда отключить службу в Windows 11?
Перманентно выключить службу можно, как минимум, двумя способами:
- Через приложение «Службы»
Сначала запустите программу «Службы» одним из рассмотренных вначале способов. Дальнейшие действия:
- Находим в списке служб ту, которую требуется отключить перманентно, и кликаем по ней два раза мышкой, что приведет к открытию дополнительного окна. Для примера снова поработаем с «XboxNetApiSvc».

- Сначала нажмем кнопку «Остановить», чтобы временно отключить службу. Затем напротив параметра «Тип запуска» выставляем «Отключена» и кликаем по кнопке «Применить»:

- Готово.
Чтобы повторно включить службу, сначала запускаем ее, затем выставляем «Автоматически» в параметре «Тип запуска» (или, наоборот — без разницы).
- Через командную строку Windows
Данный способ окажется полезным в случаях, когда невозможно запустить ни «Диспетчер задач», ни программу «Службы» (из-за системного сбоя или действий вредоносных программ).
- Сначала нужно запустить саму командную строку от имени администратора. Вызываем меню «Пуск», вписываем в поисковую строку без кавычек запрос «командная строка» или «cmd», затем кликаем по элементу «Запуск от имени администратора» справа:

- На экране отобразится окно командной строки. Если имя службы, которую требуется остановить, неизвестно, тогда первым делом потребуется вывести список тех, что запущены в данный момент. Для этого скопируйте нижеследующую команду и нажмите Enter:
sc query state=

- Находим в отобразившемся списке службу (нужна строка после параметра «Имя_службы»), которую нужно остановить. Для примера остановим службу «Сетевая служба Xbox Live», т.к. «XboxNetApiSvc». Для ее остановки вводим в командную строку следующую команду:
sc stop XboxNetApiSvc

- Обратите внимание, что мы использовали команду остановки службы 2 раза. Сначала, чтобы остановить ее (вследствие чего его состояние изменилось на «STOP_PENDING», т.е. «в ожидании остановки»), а затем для того, чтобы убедиться, остановлена ли она.
- Если потребуется вновь запустить остановленную службу, используем следующую команду:
sc start XboxNetApiSvc

- ПрипомощиутилитыEasy Service Optimizer
Easy Service Optimizer или ESO — бесплатная утилита, функциональные возможности которой практически полностью соответствуют таковым у системного приложения «Службы». Вообще, с при помощи этой программы можно быстро завершить работу множества служб единовременно с целью оптимизации компьютера, но нас интересует поштучное их отключение. Сделать это очень просто: