Передать параметр adminPassword из шаблона JSON в сценарий PS Switch - PullRequest
3 голосов
/ 13 марта 2019

Я создаю шаблон JSON, который развертывает виртуальную машину в Azure, и выполняю сценарий PowerShell через расширение пользовательских сценариев (CSE).Шаблон JSON был взят из здесь с некоторыми изменениями для нужд моей компании.

Одним из параметров в шаблоне JSON является adminPassword, который настраивает пароль для локальной учетной записи администратора виртуальной машины..

Сценарий PowerShell должен развернуть контроллер домена на виртуальной машине.Это важная часть сценария PS:

Install-ADDSForest -CreateDnsDelegation:$false -DatabasePath C:\Windows\NTDS -DomainMode 7 -DomainName Domain.local -DomainNetbiosName Domain -ForestMode 7 -InstallDns:$true -LogPath C:\Windows\NTDS -SysvolPath C:\Windows\SYSVOL -NoRebootOnCompletion:$false -Force:$true

Команде Install-ADDSForest требуется переключатель -SafeModeAdministratorPassword для ее выполнения.Добавление пароля в виде простого текста в начале сценария PS работает, , но простой текстовый пароль не является опцией .Вот как я протестировал:

$SafePassPlain = 'Password'
$SafePass = ConvertTo-SecureString -string $SafePassPlain `
    -AsPlainText -force

И введя это в строку Install-ADDSForest: -SafeModeAdministratorPassword $SafePass

Это часть в шаблоне JSON, где выполняется скрипт:

      "properties": {
        "publisher": "Microsoft.Compute",
        "type": "CustomScriptExtension",
        "typeHandlerVersion": "1.4",
        "autoUpgradeMinorVersion": true,
        "settings": {
          "fileUris": [
            "https://URLtoFile/DC-Domain.ps1
          ],
          "commandToExecute": "powershell.exe -ExecutionPolicy Unrestricted -File DC-Domain.ps1"

Я хотел бы передать параметр adminPassword из шаблона JSON в сценарий PS, чтобы он использовал его для переключателя -SafeModeAdministratorPassword.Возможно ли это?

Я прочитал о ConvertFrom-Json и проверил: 1 2 , но я не уверен, как реализовать это на моемend ...

После проверки this и this , увидев примеры передачи параметров из шаблона JSON в сценарий PS, я попытался реализовать его следующим образом:не работал:

"commandToExecute": "[concat('powershell -ExecutionPolicy Unrestricted -File DC-Domain1.ps1 -SafeModeAdministratorPassword ',parameters('adminPassword'))]"

Любая помощь будет оценена ...

...