Как выполнять сценарии PowerShell из MDT?

Вопрос или проблема

Я создал среду MDT с расширением PSD, следуя этим шагам.

Существует шаг по умолчанию для запуска скрипта powershell (Configure).

configure

Я дублировал этот шаг и создал Configure1.
configure1

И создал скрипт в папке скриптов DeploymentShare.
scripts

Просто добавил нижеуказанное содержание в созданный мной скрипт powershell.

#PSDConfigure1.ps1
Set-ItemProperty -Path 'HKLM:\System\CurrentControlSet\Control\Terminal Server' -name "fDenyTSConnections" -value 0
Enable-NetFirewallRule -DisplayGroup "Remote Desktop"

Но, похоже, указанное выше содержание не применяется на машине после последовательности задач.

Пожалуйста, предложите, как выполнить скрипты powershell.

Это может быть связано с политикой выполнения.

Попробуйте это:

 %SystemRoot%\system32\WindowsPowerShell\v1.0\powershell.exe -Noninteractive -Executionpolicy bypass -Noprofile -File {pathToFile.ps1}

Ответ или решение

Исполнение сценариев PowerShell из среды Microsoft Deployment Toolkit (MDT) требует учета некоторых технических деталей и конфигурационных настроек для успешной автоматизации процессов развертывания. Давайте рассмотрим этот процесс с примерами и рекомендациями.

Теория

Microsoft Deployment Toolkit (MDT) — это популярный инструмент для автоматизации развертывания Windows. Один из мощных способов настройки развертывания — применение сценариев PowerShell. Однако выполнение этих сценариев может иногда встречаться с преградами, такими как политика выполнения PowerShell по умолчанию, проблемы с путями доступа и другие конфигурационные моменты.

Основополагающие концепции:

  1. Политика выполнения PowerShell: По умолчанию, PowerShell может ограничивать исполнение сценариев из-за безопасности. Существуют четыре политики выполнения: Restricted (ограниченный), AllSigned (все подписанные), RemoteSigned (подписанные с удаленных источников) и Unrestricted (неограниченный). Для развертывания через MDT рекомендуемо использовать политику Bypass или RemoteSigned.

  2. Путь к сценарию: Убедитесь, что сценарий PowerShell доступен в указанном местоположении, чтобы MDT смог его найти и выполнить. Файлы сценариев рекомендуется хранить в папке Scripts в Deployment Share.

  3. Контекст выполнения: Иногда у сценариев нет доступа к системным ресурсам без администраторских привилегий. Убедитесь, что команды внутри сценария имеют право доступа и выполняются с установленными привилегиями.

Пример

Вы уже создали сценарий PSDConfigure1.ps1 и сохранили его в папке DeploymentShare/scripts, который должен изменять реестр и активировать правила брандмауэра для удаленного рабочего стола. Это хороший начальный шаг. Ваш сценарий:

#PSDConfigure1.ps1
Set-ItemProperty -Path 'HKLM:\System\CurrentControlSet\Control\Terminal Server' -name "fDenyTSConnections" -value 0
Enable-NetFirewallRule -DisplayGroup "Remote Desktop"

Применение

Теперь вы можете настроить MDT для успешного выполнения этого сценария при развертывании.

  1. Добавление шагов в последовательность задач:

    • Убедитесь, что вы дублировали шаг "Configure" в последовательности задач и указали имя и путь вашего сценария.

    • Попробуйте использовать явно определенное использование PowerShell для исполнения:

      %SystemRoot%\system32\WindowsPowerShell\v1.0\powershell.exe -Noninteractive -Executionpolicy Bypass -Noprofile -File %ScriptRoot%\PSDConfigure1.ps1

      Здесь %ScriptRoot% указывает на путь к папке Scripts в вашем Deployment Share.

  2. Политика выполнения:

    • Если политика выполнения представляется проблемой, настройте ее через Group Policy или дополнительный сценарий, который устанавливает политика выполнения перед основным сценарием:
      Set-ExecutionPolicy Bypass -Scope Process -Force
  3. Проверка и отладка:

    • Проверьте журналы MDT для выявления ошибок при исполнении, которые могут указать на проблемы с правами доступа или ошибками исходного кода самого сценария. Журналы можно найти в C:\MININT\SMSOSD\OSDLOGS на клиентском компьютере.

    • Удостоверьтесь, что последовательность задач была обновлена в развертывающей среде (Deployment Share был переработан), чтобы гарантировать все изменения были учтены.

  4. Контекст выполнения:

    • Возможно использование учетной записи с административными привилегиями отдельно для выполнения сложных сценариев, которые затрагивают системные параметры.
  5. Дополнительная автоматизация:

    • Если возникнут сложности, подумайте о написании отдельного предварительного сценария или JScript/VBS скрипта, который убедится в наличии всех необходимых переменных и путей, прежде чем сценарий PowerShell будет вызван.

Эти шаги помогут вам убедиться в правильной настройке и выполнении сценариев PowerShell в среде MDT, минимизируя проблемы и повышая надежность вашего развертывания.<|vq_9181|>

Оцените материал
Добавить комментарий

Капча загружается...