Desabilitar um serviço do Windows na linha de comando

56

Quero desabilitar um serviço do Windows, mas não quero:

  1. Abra o console de gerenciamento "Serviços"
  2. Role até o nome do serviço
  3. Clique com o botão direito do mouse em Propriedades (ou clique duas vezes)
  4. Altere o Tipo de inicialização: para desativado
  5. Aplique
  6. Clique em "Stop"

Não quero remover um serviço do Windows, mas apenas desativá-lo.

Kevin Driedger
fonte
11
services.msc, digite o nome do serviço, pressione a tecla de menu do botão direito, pressione a tecla para selecionar parar, pressione Enter.
Tamara Wijsman
5
Não é um duplicado como OP pretende parar e início automático disable
Alfabravo
11
@TomWijsman geralmente um meio sem mouse ao especificar "linha de comando", portanto, navegar na GUI do teclado não respondeu à minha pergunta
Kevin Driedger
11
@ KevinDriedger: Estou sugerindo uma maneira de encurtar os passos, leva menos chaves do que as respostas.
Tamara Wijsman

Respostas:

94
sc config "Name of Service" start= disabled
sc stop "Name of Service"

O espaço após o " start=" é importante

Você pode ver o nome do serviço clicando duas vezes em um serviço na tela Serviços:

Nome do Serviço

Kevin Driedger
fonte
12

Além da resposta de Kevin, se você precisar controlar mais de um serviço ou selecioná-los com base em alguns critérios, poderá usá-lo wmic. O uso simples para parar apenas 1 serviço (Sqlwriter no meu exemplo) seria:
wmic service where name='SQLWriter' call ChangeStartmode Disabled

mas a ferramenta é muito mais poderosa, por exemplo, para definir o modo desativado para todos os serviços com legenda começando com SQL e ainda não desativados, você pode dizer:

wmic service where "caption like 'SQL%' and  Startmode<>'Disabled'" call ChangeStartmode Disabled
wmz
fonte
11

SC STOP "<nameservice>"

SC CONFIG "<nameservice>" START=( BOOT, ou SYSTEM, ou AUTO, ou DEMAND, ou DISABLED, ou DELAYED-AUTO)

Link: configuração Sc

Marc
fonte
4
Como isso difere da resposta mais votada de cinco anos atrás?
Greenonline
4
@ Greenonline: na verdade é diferente, Marc forneceu uma lista completa de argumentos, além do link para a página de ajuda. Não vote coisas úteis.
SoLaR 15/08/19
-2

Citando KB248660 :

O utilitário Reg.exe do Microsoft Windows NT Resource Kit deve estar instalado no seu computador.

Para alterar o valor de inicialização de um serviço em um computador local usando a linha de comando, digite o seguinte no prompt de comando e pressione ENTER: ATUALIZAÇÃO DA REG HKLM \ SYSTEM \ CurrentControlSet \ Services \ servicename \ Start = X em que servicename é o nome do serviço como aparece no registro e X é um 2, um 3 ou um 4 (representando inicialização automática, inicialização manual ou desativado, respectivamente).

Para alterar o valor de inicialização para um serviço em um computador remoto usando a linha de comando localmente, digite o seguinte no prompt de comando e pressione ENTER: REG UPDATE HKLM \ SYSTEM \ CurrentControlSet \ Services \ servicename \ Start = X \ servername em que serviceicename é o nome do serviço como aparece no registro, X é um 2, um 3 ou um 4 (representando inicialização automática, inicialização manual ou desativada, respectivamente) e servername é o nome do servidor remoto.

Para ver como o nome do serviço aparece no registro, exiba a seguinte chave do Registro: HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \

darnir
fonte
Péssima ideia. Você pode desativar o serviço usando o utilitário REG, mas o gerenciador de serviços não é atualizado. O serviço ainda pode ser executado pelo gerente de serviço até que ele atualize a lista interna - testado neste momento e o serviço ainda inicia com o sinalizador desativado == Iniciado (desativado).
SoLaR 15/08/17