1

我正在尝试从 ARM 模板部署具有 DSC 扩展的 VM。根据各种消息来源,甚至这个 SO question,我正在按照正确的方法将凭证对象传递给我的脚本:

"properties": {
            "publisher": "Microsoft.Powershell",
            "type": "DSC",
            "typeHandlerVersion": "2.19",
            "autoUpgradeMinorVersion": true,
            "settings": {
              "modulesUrl": "[concat(parameters('_artifactsLocation'), '/', variables('ConfigureRSArchiveFolder'), '/', variables('ConfigureRSArchiveFileName'), '/', parameters('_artifactsLocationSasToken'))]",
              "configurationFunction": "[variables('rsConfigurationConfigurationFunction')]",
              "properties": {
                "SQLSAAdminAuthCreds": {
                  "UserName": "[parameters('SSRSvmAdminUsername')]",
                  "Password": "PrivateSettingsRef:SAPassword"
                }
              }
            },
            "protectedSettings": {
              "Items": {
                "SAPassword": "[parameters('SSRSvmAdminPassword')]"
              }
            }
          }

但是,当我部署它时,我收到以下错误消息:

Error message: "The DSC Extension received an incorrect input: The password element of 
argument 'SQLSAAdminAuthCreds' to configuration 'PrepareSSRSServer' does not 
match the required format. It should be as follows 
                {
                    "UserName" : "MyUserName",
                    "Password" : "PrivateSettingsRef:MyPassword"
                }.
Please correct the input and retry executing the extension.".

据我所知,我的格式是正确的。我错过了什么?谢谢

4

1 回答 1

2

似乎该函数尝试使用导致问题的参数。因此,请尝试检查使用 SQLSAAdminAuthCreds 的 ps1 文件中的函数。我无法重现您提到的问题。我为它做了一个demo,以下是我的详细步骤。

1.准备一个ps1文件,我从文章中得到demo代码

configuration Main
{
    param(
        [Parameter(Mandatory=$true)]
        [ValidateNotNullorEmpty()]
        [PSCredential]
        $SQLSAAdminAuthCreds
    )    
    Node localhost {       
        User LocalUserAccount
        {
            Username = $SQLSAAdminAuthCreds.UserName
            Password = $SQLSAAdminAuthCreds
            Disabled = $false
            Ensure = "Present"
            FullName = "Local User Account"
            Description = "Local User Account"
            PasswordNeverExpires = $true
        } 
    }  
}

2.压缩ps1文件

3.从 Azure 门户下载 ARM 模板和参数。

在此处输入图像描述

在此处输入图像描述 在此处输入图像描述 在此处输入图像描述

4.编辑模板和参数文件

在此处输入图像描述

  1. 尝试使用 VS 或 Powershell 部署 ARM 模板

  2. 从 Azure 门户或输出中检查它。

在此处输入图像描述

于 2017-03-02T09:44:36.153 回答