Você já se deparou com uma situação em que a desinstalação do software deixa suas entradas de serviço ou driver no registro, e o Windows tenta carregá-los a cada inicialização, falha e registra o erro no log de eventos do sistema a cada comece?
Este artigo explica como excluir um serviço órfão no Windows 10 (e anterior) usando o registro, linha de comando SC.exe, PowerShell ou Autoruns. Antes de prosseguir, crie um Ponto de restauração do sistema e pegue um backup completo do registro.
Se você encontrar isso sem dependentes existir para um serviço, você pode excluir o serviço restante ou indesejado no Windows usando um dos seguintes métodos.
Conteúdo
-
Excluir um serviço no Windows
- Método 1: Usando o comando SC.EXE
- Método 2: usando Autoruns
- Método 3: Usando o Editor do Registro
- Método 4: Usando PowerShell
- Método 5: Usando Process Hacker
- INFO: Exibir dependentes de um serviço
Como excluir um serviço do Windows?
Você pode excluir um serviço usando a linha de comando SC.exe interna, o Editor do Registro, PowerShell ou um utilitário como o Autoruns. Siga um destes métodos:
Usando o comando SC
O SC.EXE
A ferramenta de linha de comando do Windows pode ser usada para criar, editar ou excluir serviços. Para excluir um serviço do Windows, use a seguinte sintaxe de linha de comando de Prompt de comando do administrador:
sc delete service_name
Onde Nome do Serviço refere-se ao nome abreviado do serviço, em vez de seu nome de exibição. Para localizar o nome abreviado, abra Serviços MMC e clique duas vezes em um serviço.
- Exemplo 1: Serviço Google Update (
gupdate
) é o nome de exibição egupdate
é o nome curto. - Exemplo 2: Dell SupportAssist (
SupportAssistAgent
) é o nome de exibição eSupportAssistAgent
é o nome curto.
Outra maneira de encontrar o nome abreviado de um serviço é usando esta linha de comando:
tipo de consulta sc = serviço | mais
O comando acima lista todos os serviços junto com o nome (abreviado) do serviço e o nome de exibição.
Ou, se você souber o nome de exibição, poderá encontrar o nome do serviço usando este comando:
sc getkeyname "nome de exibição do serviço"
que neste exemplo é:
sc getkeyname "Google Update Service (gupdate)"
Uma vez o nome curto do serviço é obtido usando qualquer um dos métodos acima, use este comando para excluir o serviço:
teste de exclusão de sc
Você verá o resultado: [SC] DeleteService SUCCESS
Isso exclui o serviço especificado (serviço de “teste” neste exemplo) do computador.
Se o serviço estiver em execução ou outro processo tiver um alça aberta ao serviço, ele será marcado para exclusão e removido na próxima reinicialização.
Não consegue excluir um serviço?
Se você receber o seguinte erro ao excluir o serviço, também pode ser possível que esteja tentando excluir um serviço de um prompt de comando normal em vez de um Prompt de comando do administrador.
Se o mesmo erro ocorrer em um prompt de comando do administrador, isso significa que a conta do usuário conectado no momento não tem permissões de controle total para esse serviço.
[SC] OpenService FAILED 5: Acesso negado.
Para resolver esse erro ao excluir um serviço, você precisa modifique as permissões de serviço primeiro. Alternativamente, você pode usar o SISTEMA ou Instalador confiável conta para excluir o serviço.
Usando Autoruns do Windows Sysinternals
Autoruns, da Microsoft Windows Sysinternals, é um indispensável ferramenta que ajuda a gerenciar a inicialização do Windows, serviços, drivers, provedores Winsock, complementos do Internet Explorer, extensões Shell, etc.
- Baixe o Autoruns e execute-o
- Na guia Opções, marque Ocultar entradas da Microsoft para que apenas as entradas de terceiros sejam listadas.
- pressione F5 para atualizar a lista.
- Clique no Serviços guia para excluir os serviços indesejados ou que sobraram.
- Feche o Autoruns.
Usando o Editor do Registro
Para excluir manualmente um serviço diretamente por meio do Registro do Windows, siga estas etapas:
- Começar
Regedit.exe
e navegue até o seguinte branch:HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services
Cada subchave na chave de registro acima representa um driver ou serviço. O nome da chave é o mesmo que o nome curto do serviço. Além disso, você deve ser capaz de identificar a entrada facilmente, olhando para o Nome de exibição e ImagePath valores no painel direito do Editor do Registro.
- Encontre a entrada que deseja excluir.
- Faça backup da chave apropriada por exportando isso para um arquivo .reg.
- Depois de exportada, clique com o botão direito na chave e escolha Excluir.
- Saia do Editor do Registro.
Usando PowerShell
Na janela do administrador do PowerShell, você pode usar os comandos a seguir para excluir um serviço.
$ service = Get-WmiObject -Class Win32_Service -Filter "Name = 'servicename'" $ service.delete ()
Valor de retorno de 0
indica que a operação foi bem-sucedida. O serviço é excluído e não aparecerá mais no MMC de Serviços.
Para saber o significado de um valor de retorno, verifique o artigo da Microsoft Método de exclusão da classe Win32_Service
sc.exe
) ao executá-lo no PowerShell. Isso ocorre porque o comando SC
(sem mencionar a extensão .Exe
) será interpretado como Set-Content
que é um cmdlet integrado no PowerShell.É ainda mais fácil se você tiver o PowerShell 6.0 instalado. No PowerShell 6 e superior, você pode usar esta sintaxe para remover um serviço:
Remove-Service -Name ServiceName
Executando o Remove-Service
comando em versões mais antigas do PowerShell (<6.0) mostra o erro: O termo ‘Remove-Service’ não é reconhecido como o nome de um cmdlet, função, arquivo de script ou programa operável.
Usando Process Hacker
O Process Hacker é um bom utilitário de gerenciamento de processos, semelhante ao Process Explorer da Microsoft. Com o Process Hacker, você pode excluir facilmente um serviço clicando com o botão direito do mouse no menu.
Inicie o Process Hacker como administrador. Alterne para a guia Serviços, clique com o botão direito no serviço que deseja remover e clique em Excluir.
(Como uma observação lateral, você também pode configurar permissões de serviço usando Process Hacker.)
Baixe Process Hacker em https://processhacker.sourceforge.io/
Exibir dependentes de um serviço
Quando você remove um serviço, outros que dependem do serviço irão falhar ao iniciar, retornando o erro “Ocorreu o erro de sistema 1075. O serviço de dependência não existe ou foi marcado para exclusão. ”. Quando um driver ou entrada de serviço sobra no registro, mas os arquivos correspondentes estão faltando, o Log de eventos registra uma entrada com ID: 7000
em cada início.
Nome do log: Sistema. Fonte: Service Control Manager. Data: ID do evento: 7000. Nível: Erro. Descrição: O serviço DgiVecp falhou ao iniciar devido ao seguinte erro:O sistema não pode encontrar o arquivo especificado.
Portanto, é aconselhável primeiro verificar se há algum dependente. Você pode verificar isso no MMC de serviços clicando duas vezes no item que deseja excluir e clicando na guia Dependências. A lista de componentes que dependem desse serviço é mostrada a seguir. Aqui está um exemplo em que “Fax” depende do “Spooler de impressão” para iniciar.
Embora a maioria dos serviços de terceiros não tenha dependentes, alguns têm. É sempre aconselhável dar uma olhada nesta guia antes de limpar o item.
Outra forma de verificar os dependentes é executar esse comando em uma janela do Prompt de Comando. (exemplo, Spooler de impressão)
sc enumdepend spooler
As informações neste artigo se aplicam a todas as versões do Windows, incluindo o Windows 10.
Um pequeno pedido: Se você gostou deste post, por favor, compartilhe?
Um "pequeno" compartilhamento seu ajudaria seriamente no crescimento deste blog. Algumas ótimas sugestões:- Fixá-lo!
- Compartilhe com seu blog favorito + Facebook, Reddit
- Tweet isso!