Eu instalei um serviço do Windows usando o installUtil.exe.
Depois de atualizar o código, usei o installUtil.exe novamente para instalar o serviço sem desinstalar a versão original primeiro.
Quando agora tento desinstalar o serviço, o installUtil.exe conclui a desinstalação com êxito, mas o serviço ainda aparece.
Se eu tentar alterar suas propriedades, recebo a mensagem 'o serviço está marcado para exclusão'.
Como forçar a exclusão (de preferência sem reiniciar o servidor)?
.net
windows-services
Manu
fonte
fonte
Respostas:
Uma coisa que me chamou a atenção no passado é que, se você tem o visualizador de serviços em execução, isso impede que os serviços sejam totalmente excluídos, tão perto que antes
fonte
Você não precisa reiniciar sua máquina. Inicie o cmd ou o PowerShell no modo elevado.
Então você receberá algumas informações. Um número PID será exibido.
Onde / f é forçar a parada.
Agora você pode instalar ou iniciar seu serviço.
fonte
sc.exe queryex <SERVICENAME>
. Comosc
também é um apelido paraSet-Content
, ele falhará silenciosamente quando você o usar.bem, você pode usar o SC.EXE para excluir qualquer serviço do Windows com força se a desinstalação não remover por acaso.
Leia mais em "MS Techno Blogging" Excluindo serviços com força do MMC de serviços
fonte
sc delete
também informará "o serviço está marcado para exclusão" se houver um identificador aberto para o serviço.Sei que isso não vai ajudar, mas pode ajudar alguém no futuro.
Acabei de ter o mesmo problema, fechar e reabrir o gerenciador de serviços removeu a entrada do registro e concluiu a desinstalação do serviço.
Antes disso, atualizar o gerente de serviços não ajudara.
fonte
Apenas verifique se o serviço está parado antes de fazer isso. Eu já vi esse trabalho na maioria das vezes. Há momentos em que vi janelas travarem em algo e insiste em reiniciar.
fonte
Feche o cmd e a janela de serviços, se estiver aberto, e inicie o cmd novamente clicando com o botão direito do mouse e selecionando executar como administrador. Se
sc delete sericeName
não funcionar ou algo não funcionar.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
fonte
Infelizmente, você precisa reiniciar o servidor. Isso deve remover o serviço "excluído".
fonte
Caso essa resposta ajude alguém: como encontrado aqui , você pode evitar muitos problemas ao executar o Autoris do Sysinternals como administrador. Basta ir para a guia "Serviços" e excluir seu serviço.
Ele fez o truque para mim em uma máquina onde eu não tinha permissão para editar o registro.
fonte
Você pode excluir manualmente a chave do registro do seu serviço, localizada em
HKLM\SYSTEM\CurrentControlSet\Services
, depois disso não verá o serviço no gerenciador de controle de serviços (precisa atualizar ou reabrir para ver a alteração) e pode reinstalar o serviço normalmente.fonte
O seguinte funcionará sem reiniciar a máquina:
fonte
Você tentou parar o serviço antes de chamar a desinstalação? Eu tive esse problema aleatoriamente. Em algum momento eu poderia removê-lo sem reiniciar. Meu palpite é que isso tem a ver com o serviço ainda em execução
fonte
Estou atrasado, mas gostaria de adicionar uma alternativa, que pode parecer estranha, mas não vi outra maneira:
Como instalo meus Serviços do Windows em um processo de IC todas as noites, eu precisava de algo que funcionasse o tempo todo e fosse completamente automatizado. Por alguma razão, os serviços sempre foram marcados para exclusão por um longo período de tempo (5 minutos ou mais) após a desinstalação. Portanto, estendi o script em lotes de reinstalação para garantir que o serviço seja realmente excluído (versão simplificada):
O que posso ver é que o serviço está marcado para exclusão por cerca de 5 minutos (!) Até finalmente ser concluído. Finalmente, não preciso de mais intervenções manuais. Estenderei o script no futuro para que algo aconteça após um certo tempo (por exemplo, notificação após 30 minutos).
fonte
Isso funcionou para mim
fonte
ReturnValue : 16
, o comando falhou com " Este serviço está sendo removido do sistema ". Lista completa dos ReturnValues da Microsoft aquiSe você não conseguir parar o serviço nos Serviços , poderá parar o Windows Service Exe no Gerenciador de Tarefas . Depois disso, você pode remover o serviço.
fonte
Atualizar a lista de serviços sempre fazia isso por mim. Se a janela de serviços estiver aberta, ela manterá alguma memória dela existente por algum motivo. F5 e estou reinstalando novamente!
fonte
Verifique também se não há instâncias do executável ainda ativas (talvez uma que possa estar em execução, por qualquer motivo, independentemente do serviço).
Eu estava abrindo e fechando o MMC e procurando os PIDs para matar - mas, ao procurar no Process Explorer, havia alguns processos existentes em execução em um lote programado esquecido. Matou eles. Tarefa concluída.
fonte
Há muitas perguntas sobre o fórum nesse assunto.
Eu encontrei a resposta no Windows API. Você não precisa reiniciar o computador após desinstalar o serviço. Você precisa ligar para:
Isso fecha a alça do serviço. No Windows 7, resolveu o meu problema. Eu faço:
fonte
Eu uso o seguinte PowerShell em vários lugares para nossas instâncias do Octopus Deploy quando o TopShelf falha ou um serviço falha por algum outro motivo.
fonte
Também é importante notar que isto:
não funciona no PowerShell, sc é um alias para o cmdlet Set-Content no PowerShell. Você precisa fazer:
fonte