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),

  • Assegurado que o Visualizador de Eventos está fechado,

  • [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?

Solução

Podem existir várias causas que levam a que o serviço fique preso em "marcado para eliminação".

  1. SysInternals' Process Explorer está aberto. Fechá-lo deve levar à remoção automática do serviço.

    1. Task Manager is opened.
    1. Microsoft Management Console (MMC) está aberto. Para garantir que todas as instâncias estejam fechadas, execute taskkill /F /IM mmc.exe.
  2. 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.

    1. O Visualizador de Eventos está aberto. Mais uma vez, este é o mesmo que o terceiro ponto.
  3. A chave HKEY_LOCAL_MACHINE_SYSTEM](https://stackoverflow.com/a/2804099/240613).

    1. Alguém está conectado ao servidor e tem uma das aplicações anteriormente mencionadas aberta.
  4. Uma instância do Visual Studio utilizado para depurar o serviço está aberta.

Comentários (17)

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.

Comentários (7)

No meu caso, foi causado por uma exceção sem soltar enquanto criava a fonte EventLog. Tente apanhar para apontar a causa.

Comentários (0)