Как удалить службу Windows, если файлы больше не существуют? - PullRequest
549 голосов
/ 13 октября 2008

Как удалить службу Windows .NET, если файлы службы больше не существуют?

Я установил .NET Windows Service с помощью InstallUtil. С тех пор я удалил файлы, но забыл запустить

 InstallUtil /u

первый. Таким образом, сервис все еще указан в Сервисах MMC.

Должен ли я войти в реестр? Или есть лучший способ?

Ответы [ 13 ]

1096 голосов
/ 13 октября 2008

У вас есть как минимум три варианта. Я представил их в порядке предпочтения использования.

Метод 1 - Вы можете использовать SC tool (Sc.exe), включенный в Resource Kit. (входит в состав 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. В текущих версиях Window XP это было заменено sc, описанным в методе 1.

Метод 3 - вручную удалить записи реестра (Обратите внимание, что это имеет неприятные последствия в Windows 7/8)

Службы Windows зарегистрированы в следующем разделе реестра.

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services

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

160 голосов
/ 13 октября 2008

Из командной строки используйте утилиту Windows «sc.exe». Вы запустите что-то вроде этого:

sc delete <service-name>
27 голосов
/ 20 июня 2013

Замечания по использованию "sc delete" в Windows 8:

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

20 голосов
/ 23 сентября 2013

Некоторые люди упоминают sc delete в качестве ответа. Вот как я это сделал, но мне потребовалось некоторое время, чтобы найти параметр <service-name>.

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

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

SERVICE_NAME - это тот, который используется с командой sc delete <service-name>.

11 голосов
/ 23 сентября 2013

Удаление службы Windows через реестр

Очень просто удалить службу из реестра, если вы знаете правильный путь. Вот как я это сделал:

  1. Выполнить Regedit или Regedt32

  2. Перейти к записи реестра "HKEY_LOCAL_MACHINE / SYSTEM / CurrentControlSet / Services"

  3. Найдите сервис, который вы хотите удалить, и удалите его. Вы можете просмотреть ключи, чтобы узнать, какие файлы использовала служба, а также удалить их (при необходимости).

Удаление службы Windows через командное окно

Кроме того, вы также можете использовать командную строку и удалить службу, используя следующую команду:

sc delete

Вы также можете создать сервис, используя следующую команду

sc create "MorganTechService" binpath = "C: \ Program Files \ MorganTechSPace \ myservice.exe"

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

9 голосов
/ 21 февраля 2014

Если вы хотите использовать инструмент для него, вы можете использовать Process Hacker

Форма для создания услуги:

Process Hacker Create Service

Контекстное меню на сервисе для его удаления:

Process Hacker Delete Service

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

4 голосов
/ 16 июня 2014

Мне нужно было переустановить службу tomcat, что означало сначала удалить ее. Это сработало для меня:

Start a command prompt window using run as administrator

sc query type= service >t.txt

(отредактируйте файл t.txt, выполните поиск по списку и найдите службу tomcat. Она называется Tomcat7)

sc delete Tomcat7

ОДНАКО, команда запроса не работала в первый раз, потому что служба tomcat не работала. Кажется, только список служб, которые работают. Мне пришлось запустить службу и снова запустить команду запроса.

3 голосов
/ 25 марта 2015

Вы можете попробовать запустить Автозапуск , что избавит вас от необходимости редактировать реестр вручную. Это особенно полезно, когда у вас нет необходимых разрешений.

3 голосов
/ 12 февраля 2013

Если исходные файлы Service .InstallLog и .InstallState все еще находятся в папке, вы можете попробовать переустановить исполняемый файл для замены файлов, затем использовать InstallUtil / u, а затем удалить программу. Это немного запутанно, но у меня сработало в конкретном случае.

0 голосов
/ 27 февраля 2018

-Windows+r открыть cmd.

-sc YourSeviceName этот код удалить ваш сервис.

-Uninstal "YourService Path" этот код удалить вашу службу.

...