Содержание
Сталкивались ли вы с ситуацией, когда удаление программного обеспечения оставляет его реестр службы или записи драйвера в реестре, и Windows пытается загрузить их при каждой загрузке, дает сбой и регистрирует ошибку в журнале системных событий при каждом запуске?
В этом посте рассказывается, как удалить потерянный сервис в Windows 10, 8, 7 Vista с использованием реестра, командной строки SC.exe или с помощью автозапуска. Прежде чем продолжить, создайте точку восстановления системы и / или полную резервную копию реестра.
содержание
- Удалить службу в Windows
- Способ 1: использование команды SC.EXE
- Способ 2: использование автозапуска
- Способ 3: использование редактора реестра
- Метод 4: Использование PowerShell
- ИНФОРМАЦИЯ: Просмотр зависимых от услуги
Как удалить службу в Windows?
Если вы найдете это нет иждивенцев Если вы существуете для службы, вы можете продолжить удаление оставшейся или нежелательной службы в Windows одним из следующих способов.
Способ 1: удалить службу с помощью команды SC.EXE
Инструмент командной строки SC в Windows можно использовать для создания, редактирования или удаления Сервисов. Чтобы удалить службу в Windows, используйте следующий синтаксис командной строки из командной строки администратора:
sc delete service_name
где наименование услуги относится к короткому имени или ключевому имени службы вместо его отображаемого имени. Чтобы найти короткое имя, откройте MMC служб и дважды щелкните службу.
- Пример 1. Короткое имя для автоматического обновления:
wuauserv
и отображаемое имя «Автоматическое обновление». - Пример 2: служба обновлений Google (gupdate) — это отображаемое имя, и
gupdate
это короткое имя
Другой способ найти короткое имя службы — использовать эту командную строку:
sc getkeyname "service display name"
который в этом примере:
sc getkeyname "Google Update Service (gupdate)"
Как только короткое имя службы получено с помощью любого из вышеперечисленных методов, используйте эту команду для удаления службы:
sc delete test
Вы увидите результат: [SC] DeleteService УСПЕХ
Это удаляет указанную службу (в данном примере «тестовую») с компьютера.
Если служба работает или другой процесс имеет открытый дескриптор службы, служба будет просто помечена для удаления и удалена при следующей перезагрузке.
Способ 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
) при запуске в PowerShell. Это потому, что команда SC
(без упоминания расширения .exe
) будет интерпретироваться как Set-Content
который является встроенным командлетом в PowerShell.
Еще проще, если у вас установлен PowerShell 6.0. В PowerShell 6 и выше вы можете использовать этот синтаксис для удаления службы:
Remove-Service -Name ServiceName
Запуск Remove-Service
команда в старых версиях PowerShell (<6.0) shows the error: The term ‘Remove-Service’ is not recognized as the name of a cmdlet, function, script file, or operable program.
Просмотр зависимых от услуги
При удалении службы другие, зависящие от службы, не запускаются, возвращая ошибку «Произошла системная ошибка 1075. Служба зависимостей не существует или помечена для удаления ». Если запись о драйвере или службе остается в реестре, но соответствующие файлы отсутствуют, журнал событий записывает запись с ID:7000
на каждом старте.
Имя журнала: Система
Источник: Service Control Manager
Свидание:
Код события: 7000
Уровень: Ошибка
Описание:
Не удалось запустить службу DgiVecp из-за следующей ошибки:
Система не может найти указанный файл.
Поэтому желательно сначала проверить, есть ли иждивенцы. Вы можете проверить это в Службах MMC, дважды щелкнув по элементу, который вы собираетесь удалить, и перейдя на вкладку Зависимости. Список компонентов, которые зависят от этого сервиса, показан ниже. Вот пример, где «Факс» зависит от «Диспетчера очереди печати» для запуска.
Хотя большинство сторонних служб не имеют иждивенцев, некоторые имеют. Всегда желательно взглянуть на эту вкладку перед очисткой элемента.
Другой способ проверки зависимостей — запустить эту команду из окна командной строки. (например, Диспетчер очереди печати)
sc enumdepend spooler
Сведения в этой статье относятся ко всем версиям Windows, включая Windows 10.