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.