Может быть полезно инкапсулировать код перезагрузки отдельно от набора COMPUTERNAME. Это позволило бы создать список компьютеров из сценария, запрашивающего имена, или любого другого метода.
Если вы уверены, что нужные компьютеры будут перезагружены, удалите -WhatIf
из командлета Restart-Computer
.
=== Do-Reboot.ps1
[cmdletbinding()]
Param (
[Parameter(Mandatory = $true, Position = 0)]
[string[]]$ComputerName
)
foreach ($Computer in $ComputerName) {
Write-Information "reboot $Computer"
Restart-Computer -ComputerName $Computer -Wait -WhatIf
}
Тогда его можно использовать:
Do-Reboot -ComputerName SERVER1,SERVER2,SERVER3
Если вы хотите видеть что-то на консоли для каждой перезагрузки, используйте:
Do-Reboot -ComputerName SERVER1,SERVER2,SERVER3 -InformationAction Continue
Если у вас есть список серверов в текстовом файле, это можно использовать.
Do-Reboot -ComputerName $(Get-Content -Path '.\rebootlist.txt')