Gerenciamento de serviços do Windows na linha de comando: tipo de início correto?

2

Os serviços podem ser desativados usando msconfig e, em seguida, ativados posteriormente.

Descobri que eles também podem ser ativados ou desativados usando os comandos sc config , definindo a opção start como disabled ou um dos boot , system , auto , etc.

Como posso criar um script ou usar a linha de comando em um programa para determinar qual tipo de início usar ao reativar um serviço?

    
por Dorothy 01.11.2011 / 21:54

3 respostas

1

Eu entendi!

Após alguns testes e pesquisas, descobri o local no registro em que msconfig armazena o valor inicial ativado anterior, bem como a data desativada.

HKLM\Software\Microsoft\Shared Tools\MSConfig\services

Ele consiste em sub chaves para cada serviço desabilitado e cada subchave tem os seguintes valores: YEAR , MONTH , DAY , HOUR , MINUTE , SECOND , além do nome abreviado do serviço desativado, cujos dados contêm um dos seguintes itens:

  • 0 = boot
  • 1 = system
  • 2 = auto
  • 3 = demanda
  • 5 = delayed-auto

Tudo o que tenho que fazer é ler e escrever aqui quando ativar e desativar serviços.

FYI: 4 = desativado. É por isso que não está na lista acima. Apenas as chaves que estão atualmente desativadas são listadas nesse local. E eu não acho que o XP tenha 5 .

    
por 02.11.2011 / 16:23
3

O que você precisa determinar? Se já está ou não definido para o tipo que você deseja configurá-lo?

Realmente não importa qual é o estado atual. Se você estiver "reativando" um serviço configurando seu tipo de inicialização como Automático e já estiver definido como Automático, nenhuma alteração ocorrerá, portanto, não é necessário determinar qual é o estado atual.

    
por 02.11.2011 / 01:26
1

Eu não acho que exista uma maneira nativa de fazer isso. A única maneira de fazer isso seria exportar o estado quando você desativá-lo e depois lê-lo novamente a partir de um arquivo de configuração quando você o habilitar. Você pode ter mais sorte no StackOverflow com este.

Em que O / S você está? Powershell pode ser uma aposta melhor. Você pode usar o Google "Get-Service" para começar.

    
por 01.11.2011 / 22:16