Como resolver "O serviço especificado foi marcado para eliminação" erro
Eu tento remover um serviço do Windows com sc delete <service name>
, e encontro o seguinte erro:
[SC] DeleteService FAILED 1072:
O serviço especificado foi marcado para eliminação.
O que I'já fiz:
-
Parou o serviço, obviamente. O
sc queryex "<nome do serviço>"
dá o seguinte resultado:NOME_DO_SERVIÇO: Serviço de stub TIPO : 10 WIN32_OWN_PROCESS ESTADO : 1 PAROU WIN32_EXIT_CODE : 1067 (0x42b) SERVIÇO_EXIT_CODE : 0 (0x0) CHECKPOINT : 0x0 ESPERA_HINT : 0x0 PID : 0 FLAGS :
-
Assegurado que o Microsoft Management Console está fechado (
taskkill /F /IM mmc.exe
), -
[Removido a chave HKEY_LOCAL_MACHINE_SYSTEM]CurrentControlSetServices do registro]3.
Devido a esta remoção,
services.msc
ainda mostra o serviço (com um nome, mas sem status ou tipo de inicialização), mas a descrição é "<Failed to Read Description. Código de erro: 2 >gt;". Ao tentar ver as propriedades, "O sistema não consegue encontrar o ficheiro especificado" é mostrado cinco vezes.
O problema persiste.
Qual é o próximo passo?
Podem existir várias causas que levam a que o serviço fique preso em "marcado para eliminação".
SysInternals' Process Explorer está aberto. Fechá-lo deve levar à remoção automática do serviço.
taskkill /F /IM mmc.exe
.O console de serviços está aberto. Este é o mesmo que o ponto anterior, uma vez que o console de serviços é hospedado pela MMC.
A chave HKEY_LOCAL_MACHINE_SYSTEM](https://stackoverflow.com/a/2804099/240613).
Uma instância do Visual Studio utilizado para depurar o serviço está aberta.
Isto também pode ser causado por deixar o console de serviços aberto. Windows won'na verdade, não apague o serviço até que ele seja fechado.
No meu caso, foi causado por uma exceção sem soltar enquanto criava a fonte EventLog. Tente apanhar para apontar a causa.