Як видалити службу Windows, якщо файли більше не існують?


570

Як видалити службу .NET Windows, якщо файлів служби більше не існує?

Я встановив сервіс .NET Windows за допомогою InstallUtil. З тих пір я видалив файли, але забув запустити

 InstallUtil /u

спочатку. Тож послуга все ще перелічена у службі MMC.

Чи потрібно мені зайти до реєстру? Або є кращий спосіб?



2
Ви також спочатку зупинили послугу? (-> Чистий зупинка yourservice)
Jos

Дуже тісно пов'язана нитка тут .
RBT

цей сайт допоможе мені, і я сподіваюся, допоможе вам у цій проблемі howtogeek.com/howto/windows-vista/…
Ахмед Ельбендарі

Відповіді:


1130

У вас є як мінімум три варіанти. Я представив їх у порядку використання.

Спосіб 1 - Ви можете використовувати інструмент SC (Sc.exe), що входить до набору ресурсів. (в комплекті з Windows 7/8)

Відкрийте командний рядок і введіть

sc delete <service-name>

Фрагмент довідки щодо інструменту наступний:

DESCRIPTION:
        SC is a command line program used for communicating with the
        NT Service Controller and services.

delete----------Deletes a service (from the registry).

Спосіб 2 - використовувати delserv

Завантажте та використовуйте утиліту командного рядка delserv. Це застарілий інструмент, розроблений для Windows 2000. У нинішніх вікнах XP XP це було замінено sc, описаним у способі 1.

Спосіб 3 - видалення записів реєстру вручну (зауважте, що це резервна помилка в Windows 7/8)

Служби Windows реєструються під наступним ключем реєстру.

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services

Знайдіть під ключ з назвою служби під вказаним клавішею та видаліть його. (і вам може знадобитися перезапустити, щоб повністю видалити послугу зі списку Служб)


23
Спосіб 3, здається, повернеться до Windows 7
rmiesen

29
У способі 1 ви можете помилитися "Вказана послуга не існує як встановлена ​​служба", хоча ви бачите службу в MMC !!! Це тому, що ім'я, яке ви бачите, - це ім'я DisplayName. Ви можете знайти фактичне ім’я служби в дереві HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services і передати це як ім'я служби.
denispyr

9
Спосіб 3 захищений і для мене у Windows 7. Сервіс є зараз із описом<Failed to Read Description. Error Code: 2>
Zugwalt

27
зауважте, будьте обережні, якщо ви використовуєте powerhell з sc - це перекриває додаток з його командлетом set-content, і якщо ви запускаєте sc delete
bla,

10
ПРИМІТКА: Ви повинні перезавантажити комп'ютер після виконання методу 3! Потім подивіться список послуг; це, мабуть, пішло зараз. Якщо він все ще є у списку, просто виконайте метод 1, щоб видалити його зі цього списку.
Схід від нікуди

170

У командному рядку скористайтеся утилітою Windows "sc.exe". Ви запустите щось подібне:

sc delete <service-name>

21
Якщо у назві послуги є пробіл, оточіть їх подвійними лапками.
geoffc

2
Чому я отримую [SC] OpenService Failed 5: Доступ заборонено.
Адріан Енрікес

10
@AdrianEnriquez, запускаючи cmd.exe як адміністратор це виправив для мене.
foldinglettuce

3
У Windows 8 після використання команди сервіс відображається зі статусом відключеного у списку MMC. Перезапуск видалить службу зі списку.
Райан

Чи є спосіб підвищити для цього пільги? Я все одно отримую "Доступ заборонено" після введення вищезгаданої команди
Нік

27

Примітки щодо використання "sc delete" в Windows 8:

1) Відкрийте вікно CMD з підвищеними привілеями. [Windows Key-X, щоб відкрити меню з опцією; виберіть "Командний рядок (адміністратор)".]
2) Використовуйте назву в дужках зі списку в Сервісах [наприклад, я використав "sc delete gupdate", коли в Службах було прочитано "Оновлення Google (gupdate)"]


21

Дехто згадує sc deleteяк відповідь. Ось як я це зробив, але мені знадобився певний час, щоб знайти <service-name>параметр.

Команда sc query type= service(зауважте, це дуже конкретно при форматуванні, необхідний простір перед "службою") виведе список встановлених служб Windows, доповнений їх кваліфікованим ім'ям для використання в sc delete <service-name>команді.

Список досить довгий, тому ви можете розглянути можливість передачі виводу у текстовий файл (тобто >> C:\test.txt), а потім пошуку через нього.

Це SERVICE_NAMEтой, який слід використовувати з sc delete <service-name>командою.


2
Дивіться мій коментар до прийнятої відповіді. Назва служби можна швидко визначити, переглянувши аркуш властивостей для послуги на панелі «Послуги».
donperk

2
Це було абсолютно непотрібно: якщо вони відображаються у списку послуг, ви можете просто відкрити властивості служб, які потрібно видалити зі списку послуг, у списку послуг, і він покаже вам назву послуги. "Ім'я служби", вказане у властивостях, є і тим самим ім'ям служби. :)
neminem

2
Так, я знаю, що ви можете отримати ім'я іншими способами. Я додав це, тому що у мене виникли проблеми з розумінням, яке з імен використовувати в команді. Я бачив ім'я, вказане у властивостях служби, але в той час я не знав, що це ім'я використовувати в команді. Використання командного рядка було для мене гарним способом скинути всі встановлені сервіси, включаючи <service_name> для видалення. У мене було кілька служб, які потребували цього, тому мені було легше скинути весь список у файл, щоб я міг дістатися до них, не шукаючи його в оснастці служб.
Робін Французький

Ви можете просто запустити так, sc queryяк це за замовчуванням type= service.
Ян Кемп

11

Видаліть службу Windows через реєстр

Видалити службу з реєстру дуже просто, якщо ви знаєте правильний шлях. Ось як я це зробив:

  1. Запустіть Regedit або Regedt32

  2. Перейдіть до запису реєстру "HKEY_LOCAL_MACHINE / SYSTEM / CurrentControlSet / Services"

  3. Знайдіть службу, яку потрібно видалити, і видаліть її. Ви можете подивитися на клавіші, щоб знати, які файли використовувала служба, а також видалити їх (якщо потрібно).

Видаліть службу Windows через вікно команд

Крім того, ви також можете використовувати командний рядок та видалити службу, використовуючи таку команду:

sc видалити

Ви також можете створити сервіс за допомогою наступної команди

sc створити "MorganTechService" binpath = "C: \ Програмні файли \ MorganTechSPace \ myservice.exe"

Примітка. Можливо, вам доведеться перезавантажити систему, щоб оновити список у менеджері послуг.


9

Якщо ви хочете використовувати інструмент для цього, ви можете скористатися процесором

Форма для створення послуги:

Процес створення хакера

Контекстне меню служби, щоб видалити його:

Служба видалення хакерів процесів

Я вважаю Process Hacker більш зручним інструментом управління процесами та послугами Windows, ніж власний Taskmgr.exe для Windows. Особливо в Windows XP, де ви не можете отримати доступ до сервісів із диспетчера завдань.


4

Мені потрібно було перевстановити службу Tomcat, що означало спочатку її видалити. Це працювало для мене:

Start a command prompt window using run as administrator

sc query type= service >t.txt

(відредагуйте файл t.txt, пошукайте список і знайдіть службу tomcat. Це називається Tomcat7)

sc delete Tomcat7

ТАКОЖ команда запитів не працювала з першого разу, оскільки служба tomcat не працювала. Здається, перелічуються лише ті служби, які працюють. Мені довелося запустити службу і запустити команду запиту ще раз.


Якщо ви хочете побачити зупинені послуги, використовуйте stateпараметр.
Гаррі Джонстон

3

Якщо оригінальні файли Service .InstallLog та .InstallState все ще знаходяться в папці, ви можете спробувати перевстановити виконуваний файл для заміни файлів, потім скористайтеся InstallUtil / u, а потім видаліть програму. Це трохи заплутано, але працював у певному випадку для мене.


3

Ви можете спробувати запустити Autoruns , що позбавить вас від необхідності редагувати реєстр вручну. Це особливо корисно, коли у вас немає необхідних дозволів.


0

1-й крок: Перейдіть до каталогу, де є ваша послуга

Команда: cd c: \ xxx \ yyy \ service

2-й крок: Введіть команду нижче

Команда: C: \ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ InstallUtil.exe service.exe \ u

Тут service.exe - ваш сервіс exe, і \ u видалить службу. ви побачите повідомлення "Видалення завершено".

Якщо ви хочете встановити службу, видаліть \ u у вищевказаній команді, яка встановить вашу службу


3
В ОП чітко сказано, що вихідні файли видалено.
АФРАКТ

0

Ми виявили, що навіть якщо ви запустите sc_delete, у реєстрі для вашої служби може залишитися запис, завдяки чому перевстановлення служби призведе до пошкодженого набору записів реєстру (вони не відповідають). Що ми зробили, це було regeditта вручну видалити цей запис із залишку.

Примітка: ShipmunkService все ще з’являється після sc_delete!

Потім ви можете перевстановити, і ваша служба запуститься правильно. Удачі вам усім, і нехай сила буде з вами.


0

Ви можете видалити службу Windows за допомогою командного рядка і просто напишіть цю частину команди

cd\                                                                   

cd C:\Windows\Microsoft.NET\Framework\v4.0.30319(or version in which you developed your service)                                           

installutil c:\\xxx.exe(physical path of your service) -d

0

-Windows+r відкритий cmd.

-sc YourSeviceName цей код видаліть вашу службу.

-Uninstal "YourService Path" цим кодом видаліть вашу послугу.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.