Как корректно удалить службу в Windows?

Как корректно удалить службу в Windows?

После удаления некоторых программ или утилит, в Windows могут оставаться неиспользуемые службы. В этой статье мы рассмотрим, как правильно удалить любую службу в Windows с помощью встроенных средств.

В графической оснастки управления службами Windows (
services.msc
) доступны только базовые кнопки для запуска, приостановки и отключения службы. Удалить службу с помощью этой консоли нельзя.

Допустим, наша задача удалить неиспользуемую службу Stunnel TLS wrapper (в моем случае она использовалась для шифрования трафика до stunnel сервера). Прежде всего, нужно получить имя службы. В этом случае это stunnel (скопировать имя можно из поля Service name)

Узнать имя службы Windows

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

Set-Service stunnel –startuptype disabled –passthru
Stop-Service stunnel

Отключить автозапуск службу в Windows с помощью PowerShell

Также перед удаление службы, изучите список зависимых служб (параметр DependentServices):

Get-Service Schedule -DependentServices

Get-Service -DependentServices - вывести зависимые службы

Перед тем, как удалять службу, ее нужно остановить. Нажмите кнопку Stop в консоли Services или выполните команду:

net stop stunnel

net stop - остановить службу

Настройки служб хранятся в ветке реестра HKLMSYSTEMCurrentControlSetServices. Если перед удалением службы вы хотите создать резервную копию с ее настройками, можно экспортировать конфигурацию службы в REG файл с помощью команды:

reg export "HKLMSYSTEMCurrentControlSetServicesstunnel" "C:stunnel_backup.reg" /y

Настройки службы Windows в реестре

После этого можно удалить службу по ее имени с помощью встроенной утилиты
sc.exe
(если имя службы содержит пробелы, возьмите его в кавычки):

sc delete stunnel

Должно появится сообщение:

[SC] DeleteService SUCCESS

sc delete - удаление службы из командной строки

Утилита sc.exe позволяет управлять службами на удаленном компьютере. Чтобы остановить службу и удалить ее на компьютере SRV1, выполните;

sc.exe SRV1 stop "MyService"
sc.exe SRV1 delete "MyService"

Или можно удалить сервис с помощью PowerShell:

Remove-Service stunnel

Командлет Remove-Service доступен в PowerShell Core

Командлет Remove-Service доступен в PowerShell Core 6.x и новее.

В Windows PowerShell 5.1 вместо этого командлета для удаления службы можно использовать WMI:

$service = Get-WmiObject -Class Win32_Service -Filter "Name='stunnel'"
$service.delete()

Также для удаления службы достаточно просто удалить ее ветку из раздела реестра HKLMSYSTEMCurrentControlSetServices. Найдите службу в списке, проверьте что в парамтерах DisplayName and ImagePath указаны имя и путь к исполняемому файлу службы, которую вы планируете удалить. Удалите ветку службы целиком.

удалить ветку службы в реестре

Обновите список служб в консоли Services (клавиша
F5
), и проверьте что она исчезла из списка. В большинстве случаев после удаления службы рекомендуется перезагрузить Windows. После перезагрузки вы можете удалить исполняемые файлы, и директории, на которые ссылалось значение параметра реестра ImagePath.

При удалении некоторых служб в командной строке может появится о том, что служба помечена на удаление. При этом фактически служба не удаляется:

DeleteService FAILED 1072:
The specified service has been marked for deletion.

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

Если нужно удалить службу без перезагрузки Windows, нужно с помощью команды
taskill
или из
Task Manager
остановить запущенный исполняемый процесс службы. А затем удалить ее ветку в реестре с помощью такой PowerShell команды:

Get-Item HKLM:SYSTEMCurrentControlSetServicesstunnel | Remove-Item -Force -Verbose

Windows 11
Как корректно удалить службу в Windows?