Главная ГайдыКак удалить службу Windows через CMD или PowerShell — пошаговое руководство

Как удалить службу Windows через CMD или PowerShell — пошаговое руководство

by admin
A+A-
Сброс

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

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

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

how to delete unused windows service
how to delete unused windows service

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

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

disable and stop service using powershell
disable and stop service using powershell

Также перед удалением службы проверьте параметр DependentServices, чтобы узнать, какие другие службы от неё зависят.

Get-Service stunnel -DependentServices

Перед удалением службу необходимо остановить. Для этого можно нажать кнопку Stop в консоли служб или выполнить команду:

net stop stunnel

net stop service - cmd
net stop service - cmd

Настройки служб хранятся в реестре по ключу HKLM\SYSTEM\CurrentControlSet\Services.

Перед удалением службы рекомендуется создать резервную копию её настроек, экспортировав конфигурацию в REG-файл командой:

reg export "HKLM\SYSTEM\CurrentControlSet\Services\stunnel" "%HOMEPATH%\Documents\stunnel_backup.reg" /y

service registry key
service registry key

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

sc delete stunnel

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

[SC] DeleteService SUCCESS

sc delete - [SC] DeleteService SUCCESS
sc delete - [SC] DeleteService SUCCESS

Утилита sc.exe позволяет управлять службами даже на удалённых компьютерах. Чтобы остановить и удалить службу на компьютере M-FS01, выполните:

sc.exe \\m-fs01 stop ServiceName1
sc.exe \\m-fs01 delete ServiceName1

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

Remove-Service stunnel

remove-service powershelle
remove-service powershelle

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

В Windows PowerShell 5.1, где команды Remove-Service нет, можно удалить службу через WMI:

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

Также для удаления службы можно удалить её ключ в реестре по пути HKLM\SYSTEM\CurrentControlSet\Services. Чтобы убедиться, что вы удаляете нужную службу, найдите её в списке и проверьте параметры DisplayName и ImagePath — они содержат отображаемое имя службы и полный путь до её исполняемого файла. Удалите весь ключ службы.

delete service key from the registry
delete service key from the registry

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

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

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

Такая служба будет автоматически удалена после перезагрузки компьютера.

Чтобы удалить службу без перезагрузки Windows, можно завершить процесс исполняемого файла службы через taskkill или через Диспетчер задач (Task Manager), а затем удалить ключ службы в реестре с помощью следующей команды PowerShell:

Get-Item HKLM:\SYSTEM\CurrentControlSet\Services\stunnel | Remove-Item -Force -Verbose


Вам также может понравиться

оставить комментарий

Focus Mode