Вы можете настроить зависимости служб так, чтобы служба запускалась / останавливалась только после того, как ее зависимые службы также запускались / останавливались.
После того, как вы это сделали, вам нужно только остановить service1
, и Windows выполнитиметь дело с остановкой зависимостей служб ... в порядке их зависимостей.
Вы можете увидеть другие службы, имеющие зависимости в Службах.Например, Fax
услуга зависит от Print Spooler
, что само по себе зависит от RPC
, которое затем зависит от DCOM
Если вручнуюостановив службу Fax
, вы увидите остановку графического интерфейса (по порядку) DCOM, RPC, Spooler, а затем факс.
Настройка зависимостей должна быть выполнена только один раз (для каждого сервера):
sc config "service1" depend= "service2"
sc config "service2" depend= "service3"
sc config "service3" depend= "service4"
etc...
(Нет встроенной команды Powershell для этого, насколько мне известно, я нашел только sc.exe
и использование wmi, sc
- более простая команда.)
После этогоПри настройке вам потребуется всего лишь небольшой кусочек кода для перезапуска всех служб в следующем порядке:
$serverlist = Get-Content ".\server.txt"
foreach ($server in $serverlist) {
Get-Service -Name "service1" -ComputerName $server | Restart-Service
}