Вопрос или проблема
Я создал среду MDT с расширением PSD, следуя этим шагам.
Существует шаг по умолчанию для запуска скрипта powershell (Configure).
Я дублировал этот шаг и создал Configure1.
И создал скрипт в папке скриптов DeploymentShare.
Просто добавил нижеуказанное содержание в созданный мной скрипт 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 по умолчанию, проблемы с путями доступа и другие конфигурационные моменты.
Основополагающие концепции:
-
Политика выполнения PowerShell: По умолчанию, PowerShell может ограничивать исполнение сценариев из-за безопасности. Существуют четыре политики выполнения: Restricted (ограниченный), AllSigned (все подписанные), RemoteSigned (подписанные с удаленных источников) и Unrestricted (неограниченный). Для развертывания через MDT рекомендуемо использовать политику
Bypass
илиRemoteSigned
. -
Путь к сценарию: Убедитесь, что сценарий PowerShell доступен в указанном местоположении, чтобы MDT смог его найти и выполнить. Файлы сценариев рекомендуется хранить в папке
Scripts
в Deployment Share. -
Контекст выполнения: Иногда у сценариев нет доступа к системным ресурсам без администраторских привилегий. Убедитесь, что команды внутри сценария имеют право доступа и выполняются с установленными привилегиями.
Пример
Вы уже создали сценарий 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 для успешного выполнения этого сценария при развертывании.
-
Добавление шагов в последовательность задач:
-
Убедитесь, что вы дублировали шаг "Configure" в последовательности задач и указали имя и путь вашего сценария.
-
Попробуйте использовать явно определенное использование PowerShell для исполнения:
%SystemRoot%\system32\WindowsPowerShell\v1.0\powershell.exe -Noninteractive -Executionpolicy Bypass -Noprofile -File %ScriptRoot%\PSDConfigure1.ps1
Здесь
%ScriptRoot%
указывает на путь к папке Scripts в вашем Deployment Share.
-
-
Политика выполнения:
- Если политика выполнения представляется проблемой, настройте ее через Group Policy или дополнительный сценарий, который устанавливает политика выполнения перед основным сценарием:
Set-ExecutionPolicy Bypass -Scope Process -Force
- Если политика выполнения представляется проблемой, настройте ее через Group Policy или дополнительный сценарий, который устанавливает политика выполнения перед основным сценарием:
-
Проверка и отладка:
-
Проверьте журналы MDT для выявления ошибок при исполнении, которые могут указать на проблемы с правами доступа или ошибками исходного кода самого сценария. Журналы можно найти в
C:\MININT\SMSOSD\OSDLOGS
на клиентском компьютере. -
Удостоверьтесь, что последовательность задач была обновлена в развертывающей среде (Deployment Share был переработан), чтобы гарантировать все изменения были учтены.
-
-
Контекст выполнения:
- Возможно использование учетной записи с административными привилегиями отдельно для выполнения сложных сценариев, которые затрагивают системные параметры.
-
Дополнительная автоматизация:
- Если возникнут сложности, подумайте о написании отдельного предварительного сценария или JScript/VBS скрипта, который убедится в наличии всех необходимых переменных и путей, прежде чем сценарий PowerShell будет вызван.
Эти шаги помогут вам убедиться в правильной настройке и выполнении сценариев PowerShell в среде MDT, минимизируя проблемы и повышая надежность вашего развертывания.<|vq_9181|>