Powershell ожидает запуска или остановки службы, прежде чем она перейдет к следующей строке в сценарии, но мне нужно, чтобы она продолжалась без ожидания.
Идея заключается в том, что нам нужно запускать и останавливать несколько сервисов на нескольких серверах, и если мы ожидаем, что каждый сервис запустится последовательно, для запуска полного сценария может потребоваться несколько часов.
Все, что я видел в Интернете, - это то, что PowerShell нужна команда, которая заставляет его ждать, но мой опыт показывает, что PS будет ждать службы без получения какой-либо явной команды.
Write-host "Starting services..."
## Remote Start XXX services
Write-Host "Starting XXX services..."
Get-Service -Name ServiceXXX -ComputerName computerXXX | Start-service
Get-Service -Name ServiceXXX -ComputerName computerYYY | Start-service
Get-Service -Name ServiceXXX -ComputerName computerZZZ | Start-service
## Remote Start YYY services
Write-Host "Starting YYY services..."
Get-Service -Name ServiceYYY -ComputerName computerAAA | Start-service
Get-Service -Name ServiceYYY -ComputerName computerBBB | Start-service
Get-Service -Name ServiceYYY -ComputerName computerCCC | Start-service
В идеалеЯ хочу, чтобы код выполнялся таким образом, чтобы ServiceXXX на компьютере YY не ожидал ServiceXXX на компьютере XXX и т. Д. Для каждой службы.
Внутри сценария у меня есть параметры для запуска, остановки и проверки.Мы не беспокоимся о проверке системы до ее продолжения.
В данный момент PS запустит «Ожидание запуска ServiceXXX ...» и будет повторять это сообщение в течение 30 или 40 секунд.Затем он переходит к следующей строке.Вы можете понять, почему это займет очень много времени, когда мы начнем говорить о десятках удаленных серверов и десятках сервисов на каждом.