Как удалить службу в Windows 10 и более ранних версиях
Сталкивались ли вы с ситуацией, когда удаление программного обеспечения оставляет его реестр службы или записи драйверов в реестре, и Windows пытается загрузить их при каждой загрузке, дает сбой и записывает ошибку в журнал системных событий при каждом запуске?
В этом посте рассказывается, как удалить потерянную службу в Windows 10, 8, 7 и Vista с помощью реестра, командной строки SC.exe или с помощью автозапуска. Прежде чем продолжить, создайте точку восстановления системы и / или полную резервную копию реестра.
Как удалить службу в Windows?
Если вы обнаружите, что для службы не существует иждивенцев, вы можете приступить к удалению оставшейся или нежелательной службы в Windows одним из следующих способов.
Способ 1: удаление службы с помощью команды SC.EXE
Инструмент командной строки SC в Windows можно использовать для создания, редактирования или удаления Сервисов. Чтобы удалить службу в Windows, используйте следующий синтаксис командной строки из командной строки администратора:
sc удалить service_name
Где имя_службы относится к короткому имени или ключевому имени службы, а не к отображаемому имени. Чтобы найти короткое имя, откройте MMC служб и дважды щелкните службу.
- Пример 1. Краткое имя для автоматического обновления -
wuauserv
, а отображаемое имя - «Автоматическое обновление». - Пример 2. Служба обновления Google (gupdate) - это отображаемое имя, а
gupdate
- короткое имя.
Другой способ найти короткое имя службы - использовать эту командную строку:
sc getkeyname "отображаемое имя службы"
который в этом примере:
sc getkeyname "Служба обновлений Google (gupdate)"

Как только короткое имя службы получено с помощью любого из вышеперечисленных методов, используйте эту команду для удаления службы:
sc удалить тест
Вы увидите вывод: [SC] DeleteService SUCCESS

Это удаляет указанную службу (в данном примере «тестовую») с компьютера.
Если служба запущена или другой процесс имеет открытый дескриптор службы, служба будет просто помечена для удаления и удалена при следующей перезагрузке.
Способ 2: удаление службы с помощью автозапуска из Windows Sysinternals
Autoruns от Microsoft Windows Sysinternals - это необходимый инструмент, который поможет вам управлять запуском Windows, службами, драйверами, поставщиками Winsock, надстройками Internet Explorer, расширениями Shell и многим другим.
- Загрузите автозапуск и запустите его
- На вкладке «Параметры» установите флажок « Скрыть записи Microsoft», чтобы в списке присутствовали только сторонние записи.
- Нажмите F5, чтобы обновить список.
- Перейдите на вкладку « Службы », из которой вы можете удалить ненужные или оставшиеся службы.
- Закрыть автозапуск.
Способ 3: удалить службу с помощью редактора реестра
Чтобы вручную удалить службу из реестра Windows, выполните следующие действия.
- Запустите
Regedit.exe
и перейдите в следующую ветку:HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services
Ключ реестра служб.Каждый подраздел в указанном выше разделе реестра представляет драйвер или службу. Имя ключа также является кратким названием сервиса. Кроме того, вы сможете легко идентифицировать запись, посмотрев значения DisplayName и ImagePath на правой панели в редакторе реестра.
- Найдите запись, которую вы хотите удалить.
- Сделайте резервную копию соответствующего ключа, экспортировав его в файл .reg.
- После экспорта щелкните правой кнопкой мыши ключ и выберите «Удалить».
- Выйдите из редактора реестра.
Способ 4. Удаление службы с помощью PowerShell
В окне администратора PowerShell вы можете использовать следующие команды для удаления службы.
$ service = Get-WmiObject -Class Win32_Service -Filter "Name = 'servicename'" $ service.delete ()

ReturnValue 0
указывает, что операция прошла успешно. Служба удалена и больше не будет отображаться в MMC служб.
Чтобы узнать значение возвращаемого значения, ознакомьтесь со статьей Microsoft Метод Delete класса Win32_Service

sc.exe
) при запуске его в PowerShell. Это связано с тем, что команда SC
(без указания расширения .exe
) будет интерпретироваться как Set-Content
являющийся встроенным командлетом в PowerShell. Это даже проще, если у вас установлен PowerShell 6.0. В PowerShell 6 и выше вы можете использовать этот синтаксис для удаления службы:
Remove-Service -Name ServiceName
Выполнение команды Remove-Service
в более старых версиях PowerShell (<6.0) показывает ошибку: термин «Remove-Service» не распознается как имя командлета, функции, файла сценария или работоспособной программы.
Просмотр зависимых от услуги
При удалении службы другие, зависящие от службы, не запускаются, возвращая ошибку « Произошла системная ошибка 1075. Служба зависимостей не существует или была помечена для удаления ». Если запись о драйвере или службе осталась в реестре, но соответствующие файлы отсутствуют, журнал событий будет записывать запись с ID:7000
при каждом запуске.
Источник: Service Control Manager
Дата:
Код события: 7000
Уровень: Ошибка
Описание:
Не удалось запустить службу DgiVecp из-за следующей ошибки:
Система не может найти указанный файл.
Поэтому желательно сначала проверить, есть ли иждивенцы. Вы можете проверить это в Services MMC, дважды щелкнув по элементу, который вы собираетесь удалить, и перейдя на вкладку Зависимости. Список компонентов, которые зависят от этого сервиса, показан ниже. Вот пример, где «Факс» зависит от «Диспетчера очереди печати» для запуска.

В то время как большинство сторонних сервисов не имеют иждивенцев, некоторые имеют. Всегда желательно взглянуть на эту вкладку перед очисткой элемента.
Другой способ проверить зависимостей - запустить эту команду из окна командной строки. (например, Print Spooler )
sc enumdepend spooler

Сведения в этой статье относятся ко всем версиям Windows, включая Windows 10.