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.