2
respostas

Erro ao iniciar o servico "AudioSrv"

PS C:\Windows\system32> Get-Service -Name "AudioSrv" -ComputerName "DESKTOP-5QHPK0M"

Status   Name               DisplayName
------   ----               -----------
Running  AudioSrv           Áudio do Windows

PS C:\Windows\system32> $servico = Get-Service -Name "AudioSrv" -ComputerName "DESKTOP-5QHPK0M"
PS C:\Windows\system32> $servico.Status
Running
PS C:\Windows\system32> if ($servico.Status -eq "Running") {
>> $servico.Stop()
>> $servico.Start()
>> } else {
>> echo "Servico nao estava executando"
>> }
Exceção ao chamar "Start" com "0" argumento(s): "Não é possível iniciar o serviço AudioSrv no computador
'DESKTOP-5QHPK0M'."
No linha:3 caractere:1
+ $servico.Start()
+ ~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (:) [], MethodInvocationException
    + FullyQualifiedErrorId : InvalidOperationException
2 respostas

Obs: Estou executando em modo administrador, e quando executo o comando $servico.Stop() e $servico.Start() separadamente funciona.

E quando executo da forma abaixo não funciona:

if ($servico.Status -eq "Running") {

$servico.Stop() $servico.Start() } else { echo "Serviço não estava executando" }

Opa, Max. Tudo bom?

Você conseguiu resolver este problema?

O comando $servico.Stop() está executando e indo para a linha seguinte antes de o serviço, de fato, parar. Verifiquei isso executando:

if ($servico.Status -eq "Running") {
    $servico.Stop()
    $servico.Status
    $servico.Start()
} else {
    echo "Servico nao estava executando"
}

No comando $servico.Status a saída será "Running". Se o serviço demorar para mudar de status e precisamos esperar que isto aconteça antes de continuar a execução dos comandos, podemos usar o WaitForStatus, como abaixo:

if ($servico.Status -eq "Running") {
    $servico.Stop()
    $servico.WaitForStatus("Stopped")
    $servico.Start()
} else {
    echo "Servico nao estava executando"
}

Com $servico.WaitForStatus("Stopped") esperamos o status ser Stopped antes de executar a próxima linha.

Deu certo?

Abs.