В Powershell есть ли способ остановить службу, указать время ожидания, а затем перезапустить эту службу?

#powershell-5.0

#powershell-5.0

Вопрос:

Мне нужно создать скрипт, который получит службу, остановит ее и подождет 60 секунд перед перезапуском службы. Какие командлеты я бы включил?

Я пытался использовать командлет «Restart-Service», поскольку в описании справки утверждается, что он предназначен для запуска и перезапуска данной службы, но ни один из связанных параметров не предлагает способ установить указанное время перед перезапуском службы.

Любые предложения будут оценены. Спасибо!

Ответ №1:

Вы могли бы попробовать что-то вроде этого:

 $serviceName="MyService";
$waitTime = New-TimeSpan -Minutes 1
$service = Get-Service -Name $serviceName 
$service.Stop()
$service.WaitForStatus("Stopped", $waitTime)
$service.Start()
$service.WaitForStatus("Running", $waitTime)
  

Вы также можете запросить службу по отображаемому имени, если хотите.
Вы должны проверить, запущена ли служба, иначе stop выдаст исключение