Чтобы запускать рецепты на операционных системах (ОС) Windows, DCImanager использует оболочку PowerShell. Полное имя исполняемого файла: %windir%\System32\WindowsPowerShell\v1.0\powershell.exe.
Статья актуальна только для Windows Server 2016.
Для корректной работы рецептов используйте последний актуальный шаблон операционной системы.
Алгоритм запуска скрипта в общем виде
-
Проверка значения макроса $HAS_RECIPE. Выполняется в файле ответов для установки Windows /DCI/ISPsystem__Windows Server 2016/Unattend.xml. Если значение равно единице, то разрешить удалённый запуск скриптов на сервере: запуск скрипта winrm_listener.ps1.
Полное имя/DCI/ISPsystem__Windows Server 2016/win2016/sources/$OEM$/$$/SETUP/SCRIPTS/winrm_listener.ps1
-
Загрузка файла рецепта на сервер по URL из макроса $AFTER_INSTALL_SCRIPT_HTTPS.
Формат URLhttps://mydci.com:1500/dcimgr?func=osinstall.afterscript&id=randId
Пояснения - Запуск рецепта на выполнение.
-
Автоматическое отключение возможности запускать скрипты удалённо. Для этого запускается скрипт winrm_disabler.ps1:
Полное имя/usr/local/mgr5/etc/winrm_disabler.ps1
Параметры установки ОС
Общая информация об операции установки ОС хранится в файле /usr/local/mgr5/var/operations/operId.server_os_install. Например, какой был использован шаблон ОС, рецепт или пароль для установки. Значения макросов $HAS_RECIPE и $AFTER_INSTALL_SCRIPT_HTTPS, которые использовались при установке ОС, хранятся в /usr/local/mgr5/var/operations/operId.server_os_install.params.
Логирование
Журнал выполнения скриптов записывается в /usr/local/mgr5/var/runrecipe_dci.log. Чтобы в него сохранялись результаты выполнения скриптов, повысьте уровень логирования модулей runrecipe, dci_osinstall, dci_operations до 9. Для этого в /usr/local/mgr5/etc/debug.conf добавьте строки:
.*runrecipe_dci 9
.*dci_osinstall 9
.*dci_operations 9