1
resposta

Resolvendo o problema com PowerShell - Erro Script

Com o Audiosrv rodando, o script para o serviço, mas não inicializa conforme resultado:

Exceção ao chamar "Start" com "0" argumento(s): "Não é possível iniciar o serviço Audiosrv no computador
'DESKTOP-QBOOLO6'."
No linha:3 caractere:1
+ $serviço.Start()
+ ~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (:) [], MethodInvocationException
    + FullyQualifiedErrorId : InvalidOperationException

Qual seria o problema ?!

$serviço = Get-Service -Name "Audiosrv" -ComputerName "DESKTOP-QBOOLO6"
if ($servico.Status -eq "Running") {
>> $servico.Stop()
>> $servico.Start()
>> } else {
>> echo "Serviço não estava executando! 
>> }"
1 resposta

Olá Estudante, tudo bem com você?

Peço desculpas pela demora em obter um retorno.

O erro, Exception calling "Start" with "0" argument(s), está sendo apresentado devido ao tempo de execução do script está ocorrendo antes da efetiva parada do serviço, fazendo com que ocorra a tentativa de inicialização de um serviço antes mesmo de o mesmo mudar para o status Stopped gerando erro.

Uma forma de contornar este erro será utilizarmos o método WaitForStatus que permite definir um ponto de espera no script até que o serviço tenha o status que foi definido no método, no nosso caso esperaremos o status Stopped. Adicionaremos este método dentro da estrutura da condicional if, ficando como apresentado abaixo:

$servico = Get-Service -Name "AudioSRV" 

if ($servico.Status -eq "Running") {
  $servico.Stop()
  $servico.WaitForStatus("Stopped")
  echo "Serviço finalizado"
  $servico.Start()
  echo "Serviço iniciado"
} else {
  echo "Serviço não estava executando!"
}

Dessa forma, o comando $servico.Start() será chamado apenas quando o status do serviço mudar efetivamente para Stopped, como apresentado no GIF abaixo:

GIF contendo a exibição da execução do script apresentado anteriormente a este GIF

Espero ter ajudado. Continue mergulhando em conhecimento e não hesite em voltar ao fórum para continuar aprendendo e interagindo com a comunidade.

Em caso de dúvidas estou à disposição.

Abraços e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!