Я установил службу Windows, используя installUtil.exe.
После обновления кода я снова использовал installUtil.exe, чтобы установить службу без удаления исходной версии.
Когда я сейчас пытаюсь удалить службу, installUtil.exe успешно завершает удаление, но служба все равно появляется.
Если я пытаюсь изменить его свойства, я получаю сообщение «Сервис помечен для удаления».
Как я могу форсировать удаление (желательно без перезагрузки сервера)?
.net
windows-services
Manu
источник
источник
Ответы:
Одна вещь, которая меня поразила в прошлом, это то, что если у вас запущен просмотрщик сервисов, то это предотвращает полное удаление сервисов, поэтому закройте это заранее
источник
Вам не нужно перезагружать свою машину. Запустите cmd или PowerShell в режиме повышенных прав.
Тогда вы получите некоторую информацию. Номер PID покажет.
Где / f, чтобы заставить остановиться.
Теперь вы можете установить или запустить свой сервис.
источник
sc.exe queryex <SERVICENAME>
. Посколькуsc
это также псевдоним дляSet-Content
, он будет молча терпеть неудачу, когда вы используете это.хорошо, вы можете использовать SC.EXE для принудительного удаления любой службы Windows, если удаление не удаляет случайно.
Узнайте больше о "MS Techno Blogging", принудительно удаляя службы из служб MMC
источник
sc delete
также сообщит, что «сервис помечен для удаления», если для сервиса открыт дескриптор.Я знаю, что это не поможет, но это может помочь кому-то в будущем.
У меня была та же проблема: закрытие и повторное открытие менеджера сервисов удалило запись из реестра и завершило удаление сервиса.
До этого обновление менеджера сервисов не помогло.
источник
Просто убедитесь, что служба остановлена, прежде чем делать это. Я видел эту работу большую часть времени. Временами я видел, как окна зависали на чем-то, и он настаивал на перезагрузке.
источник
Закройте окно 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
источник
К сожалению, вам нужно перезагрузить сервер. Это должно удалить «удаленный» сервис.
источник
На всякий случай, если этот ответ кому-то поможет: как показано здесь , вы можете избежать многих проблем с запуском автозапуска Sysinternals администратора. Просто перейдите на вкладку «Услуги» и удалите свой сервис.
Это помогло мне на машине, где у меня не было разрешения редактировать реестр.
источник
Вы можете вручную удалить раздел реестра для своей службы, расположенный по адресу
HKLM\SYSTEM\CurrentControlSet\Services
, после чего вы не увидите службу в диспетчере управления службами (необходимо обновить или открыть заново, чтобы увидеть изменения), и вы можете переустановить службу как обычно.источник
Следующее будет работать без перезагрузки машины:
источник
Вы пытались остановить службу перед вызовом удаления? У меня была эта проблема случайно. Иногда я мог удалить его без перезагрузки. Я предполагаю, что это связано с тем, что служба все еще работает
источник
Я опоздал, но хотел бы добавить альтернативу, которая может выглядеть странно, но я не видел другого пути:
Поскольку я устанавливал свои службы Windows в процессе CI каждую ночь, мне нужно было что-то, что работает постоянно и полностью автоматизировано. По какой-то причине службы всегда были отмечены для удаления в течение длительного времени (5 минут и более) после их удаления. Поэтому я расширил пакетный скрипт переустановки, чтобы убедиться, что служба действительно удалена (упрощенная версия):
Что я вижу, так это то, что сервис помечен для удаления примерно на 5 минут (!), Пока, наконец, не пройдет. Наконец, мне не нужно больше ручных вмешательств. Я буду расширять сценарий в будущем, чтобы что-то происходило через определенное время (например, уведомление через 30 минут).
источник
Это сработало для меня
источник
ReturnValue : 16
, что команда завершилась неудачно с « Эта служба удаляется из системы ». Полный список ReturnValues от Microsoft здесьЕсли вы не можете остановить службу в Службах , вы можете остановить свою службу Windows exe в диспетчере задач . После этого вы можете удалить сервис.
источник
Обновление списка услуг всегда делало это для меня. Если окно служб открыто, то по какой-то причине оно будет содержать некоторую память о нем. F5 и я снова переустанавливаю!
источник
Также убедитесь, что не осталось ни одного экземпляра исполняемого файла (возможно, тот, который по какой-либо причине работал независимо от службы).
Я открывал и закрывал MMC и искал PID для уничтожения, но при поиске в проводнике процессов было несколько существующих процессов, запущенных из забытого запланированного пакета. Убил их. Работа выполнена.
источник
В этой теме множество вопросов на форуме.
Я нашел ответ в Windows API. Вам не нужно перезагружать компьютер после удаления службы. Вы должны позвонить:
Это закрывает ручку службы. На Windows 7 это решило мою проблему. Я делаю:
источник
Я использую следующий PowerShell, собранный из нескольких мест для наших экземпляров Octopus Deploy, когда TopShelf выходит из строя или происходит сбой службы по какой-либо другой причине.
источник
Также стоит отметить, что это:
не работает в PowerShell, sc является псевдонимом для командлета Set-Content в PowerShell. Вам нужно сделать:
источник