Как удалить службу 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!
Затем вы можете переустановить, и ваша служба будет работать правильно. Удачи вам всем, и сила может быть с вами.