it-swarm.dev

Como desinstalo um serviço do Windows se os arquivos não existirem mais?

Como desinstalo um serviço do Windows .NET, se os arquivos de serviço não existirem mais?

Eu instalei um serviço do Windows .NET usando o InstallUtil. Eu já excluí os arquivos, mas esqueci de executar

 InstallUtil /u

primeiro. Portanto, o serviço ainda está listado no MMC de serviços.

Eu tenho que entrar no registro? Ou há uma maneira melhor?

545
Thomas Jespersen

Você tem pelo menos três opções. Eu os apresentei em ordem de preferência de uso.

Método 1 - Você pode usar a ferramenta SC (Sc.exe) incluída no Resource Kit. (incluído no Windows 7/8)

Abra um prompt de comando e digite

sc delete <service-name>

O snippet de ajuda da ferramenta segue:

DESCRIPTION:
        SC is a command line program used for communicating with the
        NT Service Controller and services.

delete----------Deletes a service (from the registry).

Método 2 - use delserv

Download e use o utilitário de linha de comando delserv. Esta é uma ferramenta legada desenvolvida para o Windows 2000. Nas caixas Window XP atuais, isso foi substituído pelo sc descrito no método 1.

Método 3 - excluir manualmente entradas de registro (Observe que isso sai pela culatra no Windows 7/8)

Os serviços do Windows estão registrados na seguinte chave do Registro.

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services

Procure a subchave com o nome do serviço na chave indicada e exclua-a. (e você pode precisar reiniciar para remover completamente o serviço da lista Serviços)

1091
Jorge Ferreira

No prompt de comando, use o utilitário "sc.exe" do Windows. Você vai correr algo assim:

sc delete <service-name>
159
Dean Hill

Notas sobre o uso de "sc delete" no Windows 8:

1) Abra uma janela do CMD com privilégios elevados. [Windows Key-X para abrir um menu com a opção; selecione "Prompt de comando (Admin)".]
2) Use o nome entre parênteses na lista em Serviços [por exemplo, usei "sc delete gupdate" quando, em Services, ele lê "Google Update (gupdate)"]

27
Michael

Algumas pessoas mencionam sc delete como resposta. Foi assim que eu fiz, mas demorei um pouco para encontrar o parâmetro <service-name>.

O comando sc query type= service (note que é muito particular com a formatação, o espaço antes que o "serviço" seja necessário) exibirá uma lista de serviços do Windows instalados, completa com seu nome qualificado para ser usado com o comando sc delete <service-name>.

A lista é bem longa, então você pode considerar colocar a saída em um arquivo de texto (por exemplo, >> C:\test.txt) e, em seguida, pesquisá-la.

O SERVICE_NAME é o que deve ser usado com o comando sc delete <service-name>.

20
Robin French

Remover o serviço do Windows por meio de registro

É muito fácil remover um serviço do registro se você souber o caminho certo. Aqui está como eu fiz isso:

  1. Execute Regedit ou Regedt32

  2. Vá para a entrada de registro "HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services"

  3. Procure o serviço que você deseja excluir e exclua. Você pode examinar as chaves para saber quais arquivos o serviço estava usando e excluí-los também (se necessário).

Excluir serviço do Windows via janela de comando

Como alternativa, você também pode usar o comando Prompt e excluir um serviço usando o seguinte comando:

sc delete

Você também pode criar serviço usando o seguinte comando

sc create "MorganTechService" binpath = "C:\Arquivos de programas\MorganTechSPace\myservice.exe"

Nota: Você pode ter que reinicializar o sistema para obter a lista atualizada no gerenciador de serviços.

11
kombsh

Se você deseja usar uma ferramenta para isso, você pode usar Process Hacker

Formulário para criar o serviço:

Process Hacker Create Service

Menu de contexto em um serviço para excluí-lo:

Process Hacker Delete Service

Eu acho que o Process Hacker é uma ferramenta mais conveniente para gerenciar processos e serviços do Windows do que o próprio Taskmgr.exe do Windows. Especialmente no Windows XP, onde você não pode acessar serviços do gerenciador de tarefas.

9
Mike de Klerk

Eu precisava reinstalar o meu serviço Tomcat, o que significava primeiro removê-lo. Isso funcionou para mim:

Start a command Prompt window using run as administrator

sc query type= service >t.txt

(edite o arquivo t.txt, pesquise na lista e encontre o serviço Tomcat. Ele é chamado Tomcat7)

sc delete Tomcat7

No entanto, o comando de consulta não funcionou na primeira vez, porque o serviço Tomcat não estava em execução. Parece listar apenas os serviços em execução. Eu tive que iniciar o serviço e executar o comando de consulta novamente.

4
user1208639

Se os arquivos originais do serviço .InstallLog e .InstallState ainda estiverem na pasta, você pode tentar reinstalar o executável para substituir os arquivos, usar o InstallUtil/u e, em seguida, desinstalar o programa. É um pouco confuso, mas funcionou em um exemplo particular para mim.

3
ja928

Você pode tentar executar Autoruns , o que evitará que você tenha que editar o registro manualmente. Isso é especialmente útil quando você não tem as permissões necessárias.

3
Tan

1º Passo: Mude para o diretório onde seu serviço está presente

Comando: cd c:\xxx\yyy\service

2º passo: Digite o comando abaixo

Comando: C:\Windows\Microsoft.NET\Framework\v4.0.30319\InstallUtil.exe service.exe\u

Aqui service.exe é o seu serviço exe e\u irá desinstalar o serviço. você verá a mensagem "A desinstalação foi concluída".

Se você quer instalar um serviço, remova\u no comando acima que instalará seu serviço

0
Sree

-Windows+r abre cmd.

-sc YourSeviceName este código remove seu serviço.

-Uninstal "YourService Path" este código desinstala o seu serviço.

0
Ayse Özbek

Descobrimos que, mesmo se você executar sc_delete, pode haver uma entrada restante no registro para seu serviço, para que a reinstalação do serviço resulte em um conjunto corrompido de entradas de registro (elas não correspondem). O que fizemos foi regedit e remover essa entrada à mão.

  Nota: ShipmunkService ainda está aparecendo após sc_delete!

Em seguida, você pode reinstalar e seu serviço será executado corretamente. Boa sorte para todos vocês, e que a força esteja com você.

0
barclay

Você pode desinstalar seu serviço do Windows pelo comando Prompt também apenas escrever este pedaço de comando

cd\                                                                   

cd C:\Windows\Microsoft.NET\Framework\v4.0.30319(or version in which you developed your service)                                           

installutil c:\\xxx.exe(physical path of your service) -d
0
Amarjit Singh Chaudhary