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

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

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

 InstallUtil /u

первый. Таким образом, служба по-прежнему указана в MMC Services.

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

Ответ 1

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

Метод 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. В текущих окнах Windows XP это было заменено sc, описанным в методе 1.

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

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

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services

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

Ответ 2

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

sc delete <service-name>

Ответ 3

Заметки об использовании "sc delete" в Windows 8:

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

Ответ 4

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

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

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

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

Ответ 5

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

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

  • Запустите Regedit или Regedt32

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

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

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

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

sc удалить

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

sc создать "MorganTechService" binpath = "C:\Program Files\MorganTechSPace\myservice.exe"

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

Ответ 6

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

Форма для создания сервиса:

Process Hacker Create Service

Контекстное меню службы для его удаления:

Process Hacker Delete Service

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

Ответ 7

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

Start a command prompt window using run as administrator

sc query type= service >t.txt

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

sc delete Tomcat7

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

Ответ 8

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

Ответ 9

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

Ответ 10

Вы можете удалить свою службу Windows в командной строке, просто напишите эту команду

cd\

cd C:\Windows\Microsoft.NET\Framework\v4.0.30319 (или версия, в которой вы создали вашу службу)

installutil c:\xxx.exe(физический путь вашей службы) -d

Ответ 11

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 в приведенной выше команде, которая установит вашу службу

Ответ 12

Мы обнаружили, что даже если вы запустите sc_delete, в реестре вашей службы может быть запись, чтобы переустановка службы приводила к поврежденному набору записей реестра (они не совпадают). То, что мы сделали, было regedit и удалить эту оставшуюся запись вручную.

Примечание: ShipmunkService все еще появляется после sc_delete!

Затем вы можете переустановить, и ваша служба будет работать правильно. Удачи вам всем, и сила может быть с вами.