Чи стикалися ви з ситуацією, коли видалення програмного забезпечення залишає записи служби або драйвера в файлі реєстру, і Windows намагається завантажити їх під час кожного завантаження, не вдається і записує помилку в журнал системних подій при кожному завантаженні. стартап?
У цій статті розповідається, як видалити осиротілий сервіс у Windows 10 (і раніше) за допомогою реєстру, командного рядка SC.exe, PowerShell або Автозапуски. Перш ніж продовжити, створіть a Точка відновлення системи і візьміть а повне резервне копіювання реєстру.
Якщо ви знайдете це без утриманців існує для служби, ви можете видалити залишок або небажану Службу в Windows за допомогою одного з наведених нижче методів.
Зміст
-
Видалити службу в Windows
- Спосіб 1: Використання команди SC.EXE
- Спосіб 2: Використання автозапуску
- Спосіб 3: Використання редактора реєстру
- Спосіб 4: Використання PowerShell
- Спосіб 5: Використання Process Hacker
- ІНФОРМАЦІЯ: Перегляньте залежні служби
Як видалити службу в Windows?
Ви можете видалити службу за допомогою вбудованого командного рядка SC.exe, редактора реєстру, PowerShell або такої утиліти, як Autoruns. Дотримуйтесь одного з цих методів:
Використання команди SC
The SC.EXE
Інструмент командного рядка в Windows можна використовувати для створення, редагування або видалення служб. Щоб видалити службу в Windows, використовуйте наступний синтаксис командного рядка from Командний рядок адміністратора:
sc видалити service_name
Де назва_послуги посилається на коротку назву служби, а не на її відображувану назву. Щоб знайти коротку назву, відкрийте Services MMC і двічі клацніть службу.
- Приклад 1: служба оновлення Google (
gupdate
) – відображуване ім’я таgupdate
це коротка назва. - Приклад 2: Dell SupportAssist (
SupportAssistAgent
) – відображуване ім’я таSupportAssistAgent
це коротка назва.
Інший спосіб знайти коротку назву служби - це використовувати командний рядок:
sc тип запиту= сервіс | більше
У наведеній вище команді перераховані всі служби разом із (короткою) назвою служби та відображуваною назвою.
Або, якщо ви знаєте відображуване ім’я, ви можете знайти ім’я служби за допомогою цієї команди:
sc getkeyname "відображувана назва служби"
що в цьому прикладі:
sc getkeyname "Служба оновлення Google (update)"
Одного разу коротка назва служби отримано будь-яким із вищенаведених методів, скористайтеся цією командою, щоб видалити Службу:
тест видалення sc
Ви побачите результат: [SC] DeleteService УСПІХ
Це видаляє вказану службу (у цьому прикладі службу «тестування») з комп’ютера.
Якщо служба запущена або інший процес має файл відкрита ручка до служби, він буде позначено для видалення та видалено при наступному перезавантаженні.
Не можете видалити службу?
Якщо під час видалення служби ви отримуєте таку помилку, можливо, ви намагаєтеся видалити службу зі звичайного командного рядка замість Командний рядок адміністратора.
Якщо така ж помилка виникла в командному рядку адміністратора, це означає, що обліковий запис користувача, який увійшов у систему, не має повних дозволів на керування цією службою.
[SC] Помилка OpenService 5: доступ заборонено.
Щоб усунути цю помилку під час видалення служби, потрібно спочатку змініть дозволи служби. Як варіант, ви можете використовувати СИСТЕМА або TrustedInstaller обліковий запис, щоб видалити службу.
Використання автозапуску з Windows Sysinternals
Автозапуски, від Microsoft Windows Sysinternals, є a повинен мати інструмент, який допомагає керувати запуском Windows, службами, драйверами, постачальниками Winsock, надбудовами Internet Explorer, розширеннями оболонки тощо.
- Завантажте автозапуск і запустіть його
- На вкладці Параметри поставте галочку Приховати записи Microsoft так що в списку відображаються лише записи третьої сторони.
- Натисніть F5 щоб оновити список.
- Натисніть кнопку послуги вкладку, щоб видалити небажані або залишені служби.
- Закрийте автозапуски.
Використання редактора реєстру
Щоб вручну видалити службу безпосередньо через реєстр Windows, виконайте такі дії:
- Почніть
Regedit.exe
і перейдіть до наступної гілки:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services
Кожен підключ у наведеному вище розділі реєстру представляє драйвер або службу. Ім'я ключа таке ж, як і коротке ім'я послуги. Крім того, ви зможете легко ідентифікувати запис, подивившись на DisplayName і ImagePath значення на правій панелі в редакторі реєстру.
- Знайдіть запис, який потрібно видалити.
- Скопіюйте відповідний ключ експортуючи його у файл .reg.
- Після експорту клацніть правою кнопкою миші ключ і виберіть Видалити.
- Вийдіть з редактора реєстру.
Використання PowerShell
У вікні адміністратора PowerShell можна використовувати такі команди, щоб видалити службу.
$service = Get-WmiObject -Class Win32_Service -Фільтр "Name='servicename'" $service.delete()
ReturnValue з 0
означає, що операція пройшла успішно. Служба видалена і більше не відображатиметься в MMC служб.
Щоб дізнатися значення повертаемого значення, перегляньте статтю Microsoft Видалити метод класу Win32_Service
sc.exe
) під час запуску в PowerShell. Це тому, що команда SC
(не згадуючи розширення .exe
) буде інтерпретовано як Set-Content
який є вбудованим командлетом у PowerShell.Ще простіше, якщо у вас інстальовано PowerShell 6.0. У PowerShell 6 і новіших версіях ви можете використовувати цей синтаксис для видалення служби:
Remove-Service -Name Ім'я служби
Запуск Remove-Service
команда в старих версіях PowerShell (<6.0) показує помилку: Термін «Remove-Service» не розпізнається як ім’я командлета, функції, файлу сценарію або працездатної програми.
Використання Process Hacker
Process Hacker — це хороша утиліта для керування процесами, яка за зовнішнім виглядом схожа на Process Explorer від Microsoft. За допомогою Process Hacker ви можете легко видалити службу за допомогою меню правою кнопкою миші.
Запустіть Process Hacker як адміністратор. Перейдіть на вкладку «Служби», клацніть правою кнопкою миші службу, яку потрібно видалити, і натисніть «Видалити».
(Як примітка, ви також можете налаштувати дозволи на обслуговування за допомогою Process Hacker.)
Завантажте Process Hacker з https://processhacker.sourceforge.io/
Переглянути залежні служби
Коли ви видаляєте службу, інші, які залежать від служби, не запускаються, повертаючи помилку «Сталася системна помилка 1075. Служба залежностей не існує або була позначена для видалення.». Якщо в реєстрі залишився запис драйвера або служби, але відповідні файли відсутні, журнал подій записує запис із ID: 7000
на кожному початку.
Ім'я журналу: система. Джерело: Service Control Manager. Дата: ID події: 7000. Рівень: Помилка. Опис: Не вдалося запустити службу DgiVecp через таку помилку:Система не може знайти вказаний файл.
Тому бажано спочатку перевірити, чи є утриманці. Ви можете перевірити це в службі MMC, двічі клацнувши елемент, який ви збираєтеся видалити, і перейшовши на вкладку Залежності. Нижче наведено список компонентів, які залежать від цієї служби. Ось приклад, коли «Факс» залежить від «Спулера друку».
Хоча більшість сторонніх служб не мають залежних осіб, деякі є. Завжди радимо подивитися на цю вкладку, перш ніж очищати елемент.
Інший спосіб перевірити залежні — запустити цю команду з вікна командного рядка. (приклад, Спулер друку)
sc enumdepend спулер
Інформація в цій статті стосується всіх версій Windows, включаючи Windows 10.
Одне невелике прохання: якщо вам сподобався цей пост, поділіться ним?
Одна ваша "крихітна" публікація серйозно допомогла б у розвитку цього блогу. Кілька чудових пропозицій:- Закріпіть!
- Поділіться ним у своєму улюбленому блозі + Facebook, Reddit
- Твіттер!