Как удалить службу в 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 и многим другим.

  1. Загрузите автозапуск и запустите его
  2. На вкладке «Параметры» установите флажок « Скрыть записи Microsoft», чтобы в списке присутствовали только сторонние записи.
  3. Нажмите F5, чтобы обновить список.
  4. Перейдите на вкладку « Службы », из которой вы можете удалить ненужные или оставшиеся службы.

  5. Закрыть автозапуск.

Способ 3: удалить службу с помощью редактора реестра

Чтобы вручную удалить службу из реестра Windows, выполните следующие действия.

  1. Запустите Regedit.exe и перейдите в следующую ветку:
     HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services 

    Ключ реестра служб.

    Каждый подраздел в указанном выше разделе реестра представляет драйвер или службу. Имя ключа также является кратким названием сервиса. Кроме того, вы сможете легко идентифицировать запись, посмотрев значения DisplayName и ImagePath на правой панели в редакторе реестра.

  2. Найдите запись, которую вы хотите удалить.
  3. Сделайте резервную копию соответствующего ключа, экспортировав его в файл .reg.
  4. После экспорта щелкните правой кнопкой мыши ключ и выберите «Удалить».
  5. Выйдите из редактора реестра.

Способ 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 ) при запуске его в 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.

ПОХОЖИЕ СТАТЬИ