Как заставить деинсталляцию службы Windows - PullRequest
162 голосов
/ 22 октября 2008

Я установил службу Windows, используя installUtil.exe.

После обновления кода я снова использовал installUtil.exe, чтобы установить службу без удаления исходной версии.

Когда я сейчас пытаюсь удалить службу, installUtil.exe успешно завершает удаление, но служба все равно появляется.

Если я пытаюсь изменить его свойства, я получаю сообщение «Сервис помечен для удаления».

Как я могу форсировать удаление (желательно без перезагрузки сервера)?

Ответы [ 18 ]

437 голосов
/ 28 октября 2009

Одна вещь, которая меня поразила в прошлом, это то, что если у вас запущен просмотрщик сервисов, то это предотвращает полное удаление сервисов, поэтому закройте это заранее

134 голосов
/ 09 июня 2011

Вам не нужно перезагружать машину. Запустите cmd или PowerShell в режиме повышенных прав.

sc.exe queryex <SERVICE_NAME>

Тогда вы получите некоторую информацию. Номер PID покажет.

taskkill /pid <SERVICE_PID> /f

Где / f - принудительная остановка.

Теперь вы можете установить или запустить свой сервис.

90 голосов
/ 09 октября 2009

хорошо, вы можете использовать SC.EXE для принудительного удаления любой службы Windows, если удаление не удаляет случайно.

sc delete <Service_Name>

Подробнее о "MS Techno Blogging" Принудительное удаление служб из служб MMC

36 голосов
/ 11 ноября 2010

Я знаю, что это не поможет, но это может кому-то помочь в будущем.

У меня только что возникла та же проблема: закрытие и повторное открытие диспетчера служб удалило запись из реестра и завершило удаление службы.

До этого обновление менеджера служб не помогало.

9 голосов
/ 24 октября 2008
sc delete sericeName

Просто убедитесь, что служба остановлена ​​перед этим. Я видел эту работу большую часть времени. Временами я видел, как окна зависали на чем-то, и он настаивал на перезагрузке.

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

Закройте окно cmd и службы, если оно открыто, затем снова запустите cmd, щелкнув правой кнопкой мыши и выбрав команду «Запуск от имени администратора». Если sc delete sericeName не работает или ничего не работает.

http://weblogs.asp.net/avnerk/archive/2007/09/05/windows-services-services-msc-and-the-quot-this-service-is-marked-for-deletion-quot-error.aspx

4 голосов
/ 22 октября 2008

К сожалению, вам нужно перезагрузить сервер. Это должно удалить «удаленный» сервис.

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

На всякий случай, если этот ответ кому-то поможет: как оказалось, здесь , вы можете избавить себя от множества проблем, запустив Sysinternals Autoruns в качестве администратора. Просто перейдите на вкладку «Услуги» и удалите свой сервис.

Это помогло мне на машине, где у меня не было разрешения на редактирование реестра.

2 голосов
/ 28 марта 2012

Следующее будет работать без перезагрузки машины:

  1. Поиск в реестре \ HKEY_LOCAL_MACHINE по <имени службы> (ключам и значениям)
  2. Установить значение "Legacy" на 0
1 голос
/ 17 октября 2017

Если вы не можете остановить службу в Службах , вы можете остановить свою службу Windows exe в Диспетчере задач . После этого вы можете удалить сервис.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...