Чтобы запускать рецепты на операционных системах (ОС) Windows, DCImanager использует оболочку PowerShell. Полное имя исполняемого файла: %windir%\System32\WindowsPowerShell\v1.0\powershell.exe. 

%windir% — директория сервера, в которую установлена операционная система.

Обратите внимание!

Статья актуальна только для Windows Server 2016.

Для корректной работы рецептов используйте последний актуальный шаблон операционной системы.

Алгоритм запуска скрипта в общем виде


  1. Проверка значения макроса $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
    CODE
  2. Загрузка файла рецепта на сервер по URL из макроса $AFTER_INSTALL_SCRIPT_HTTPS. 

    Формат URL

    https://mydci.com:1500/dcimgr?func=osinstall.afterscript&id=randId
    CODE

    mydci.com — IP-адрес или доменное имя сервера с DCImanager;

    randId — уникальный идентификатор рецепта.

  3. Запуск рецепта на выполнение. 
  4. Автоматическое отключение возможности запускать скрипты удалённо. Для этого запускается скрипт winrm_disabler.ps1

    Полное имя

    /usr/local/mgr5/etc/winrm_disabler.ps1
    CODE

Параметры установки ОС


Общая информация об операции установки ОС хранится в файле /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

operId — уникальный идентификатор операции.

Логирование


Журнал выполнения скриптов записывается в /usr/local/mgr5/var/runrecipe_dci.log. Чтобы в него сохранялись результаты выполнения скриптов, повысьте уровень логирования модулей runrecipe, dci_osinstall, dci_operations до 9. Для этого в /usr/local/mgr5/etc/debug.conf добавьте строки:

Пример файла debug.conf

.*runrecipe_dci 9
.*dci_osinstall 9 
.*dci_operations 9 
CODE