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

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

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

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

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

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

sc.exe SRV1 stop "MyService"
sc.exe SRV1 delete "MyService"
Или можно удалить сервис с помощью PowerShell:
Remove-Service stunnel

В Windows PowerShell 5.1 вместо этого командлета для удаления службы можно использовать WMI:
$service = Get-WmiObject -Class Win32_Service -Filter "Name='stunnel'"
$service.delete()
Также для удаления службы достаточно просто удалить ее ветку из раздела реестра HKLMSYSTEMCurrentControlSetServices. Найдите службу в списке, проверьте что в парамтерах DisplayName and ImagePath указаны имя и путь к исполняемому файлу службы, которую вы планируете удалить. Удалите ветку службы целиком.

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?