Как возобновить выполнение скрипта PowerShell после перезагрузки компьютера?
Часто приходится разворачивать новые хосты Hyper-V. Чтобы облегчить себе работу и обезопаситься от человеческих ошибок, решил написать скрипт наподобие описанного в книге "Windows Server 2012 Hyper-V Installation and Configuration Guide": скрипт переименовывает хост, включает RDP, поднимает роли Hyper-V и FC, создает виртуальные коммутаторы, бла-бла-бла. Короче, много работы и 2 перезагрузки. Надо как-то продолжать выполнение скрипта с того места, где его прервала перезагрузка после включения того же Hyper-V. Иначе приходится вводить много паролей и много кликать, что не по феншую.
Где-то слышал, мол Server Manager начиная с WS 2012 работает целиком на PowerShell'е. Он успешно продолжает установку и настройку ролей даже после перезагрузки, хочу так же. Как?
Вариант первый, очевидный и кривой - колхозить с шедулером и файлами-семафорами.
Вариант второй, более изящный - освоить remoting, пускать скрипты на другой машине, цепляясь к целевой машине через Invoke-PSSession. Предельное развитие второго варианта - освоить ansible(+playbooks), развернуть сервер автоматизации, пускать все задачи автоматизации на нём.
Колхоз с шедулером и вот этим всем точно сразу к черту.
Разве сессия PSRemoting не порвется из-за недоступности сервера во время перезагрузки?
Ansible тащить на хосты Hyper-V как-то не хочется. Это хосты Hyper-V все-таки.
Евгений Ферапонтов: Порвётся. Но останется основной цикл скрипта, из которого это можно обнаружить и её перезапустить :)
Ansible безагентный. Нужна только лёгкая виртуалка с никсами для него самого и открыть powershell-remoting через WS-Man на хостах (готовый скрипт - https://github.com/ansible/ansible/blob/devel/exam...
как альтернативный вариант - изучить powershell desired state configuration и, конфигурить машину www.powershellgallery.com/packages/xHyper-V/3.5.0.0 (есть и другие модули, надо раскапывать)
Однако обратите внимание на ответ Ethril - возможно оно пойдёт легче