将凭据传递到Azure资源管理器模板

时间:2019-02-21 00:39:50

标签: azure azure-resource-manager azure-template

根据Microsoft文档settings-vs-protectedsettings,protectedSettings下列出的属性已使用证书加密,并且在VM的设置文件中未以纯文本显示。但是,我的部署失败,并显示以下错误

  

new-azResourceGroupDeployment:00:08:49-资源   Microsoft.Compute /虚拟机器/扩展   “ DI-DEV-UKW-DB1 / Microsoft.Powershell.DSC”失败,并显示消息“ {
  “状态”:“失败”,“错误”:{       “ code”:“ ResourceDeploymentFailure”,       “ message”:“资源操作已完成,终端供应状态为“失败”。”,       “细节”: [         {           “ code”:“ VMExtensionProvisioningError”,           “消息”:“ VM在处理扩展名'Microsoft.Powershell.DSC'时报告了故障。错误消息:\” DSC   扩展接收到错误的输入:发生编译错误   在处理配置“ SQLConfig”时。请检查错误   报告错误流并修改您的配置代码   适当地。 System.InvalidOperationException错误处理   类型“ SqlServerRole”的属性“ PsDscRunAsCredential”:正在转换   不建议将加密的密码存储为纯文本格式。对于   有关在MOF文件中保护凭据的更多信息,请参阅   MSDN博客:http://go.microsoft.com/fwlink/?LinkId=393729 \ nAt   C:\ Packages \ Plugins \ Microsoft.Powershell.DSC \ 2.77.0.0 \ DSCWork \ sqlserverconfig.ps1.19 \ sqlserverconfig.ps1:110   char:9 \ n + SqlServerRole转换和存储加密的密码   因为不建议使用纯文本。有关安全的更多信息   MOF文件中的凭据,请参阅MSDN博客:   http://go.microsoft.com/fwlink/?LinkId=393729找不到路径   'HKLM:\ SOFTWARE \ Microsoft \ PowerShell \ 3 \ DSC',因为它没有   存在。找不到路径   'HKLM:\ SOFTWARE \ Microsoft \ PowerShell \ 3 \ DSC',因为它没有   存在。 System.InvalidOperationException错误处理属性   类型为“ SqlServerLogin”的“ PsDscRunAsCredential”:转换和   不建议将加密的密码存储为纯文本格式。欲了解更多   有关在MOF文件中保护凭据的信息,请参考MSDN   博客:http://go.microsoft.com/fwlink/?LinkId=393729 \ nAt   C:\ Packages \ Plugins \ Microsoft.Powershell.DSC \ 2.77.0.0 \ DSCWork \ sqlserverconfig.ps1.19 \ sqlserverconfig.ps1:100   char:9 \ n + SqlServerLogin转换和存储加密的密码   因为不建议使用纯文本。有关安全的更多信息   MOF文件中的凭据,请参阅MSDN博客:   http://go.microsoft.com/fwlink/?LinkId=393729找不到路径   'HKLM:\ SOFTWARE \ Microsoft \ PowerShell \ 3 \ DSC',因为它没有   存在。找不到路径   'HKLM:\ SOFTWARE \ Microsoft \ PowerShell \ 3 \ DSC',因为它没有   存在。\ n \ n另一个常见错误是指定类型的参数   没有显式类型的PSCredential。请确保使用输入   DSC配置中的参数,例如:\ n \ n配置   示例{\ n param([[PSCredential] $ UserAccount)\ n ... \ n   }。\ n请更正输入,然后重试执行扩展名。\“。         }       ]}

请参阅我的代码Scripts

的链接

1 个答案:

答案 0 :(得分:1)

在这种情况下,错误是由于dsc尝试删除SA用户而引起的。这是因为您配置错误。参考:https://github.com/PowerShell/SqlServerDsc#sqlserverrole

您需要使用MembersToInclude而不是成员,因为成员将用您指定的任何内容替换现有成员。

我建议尝试使用完全相同的输入(在同一台vm上)在本地进行编译,并查看其是否有效。另一种测试方法-逐个删除资源,这样您可以将其范围缩小到特定的故障资源。另一件事:尝试这样做:

    [System.Management.Automation.PSCredential]$DomainCreds = New-Object System.Management.Automation.PSCredential ("domain_name\$($AdminCredentials.UserName)", $AdminCredentials.Password)

,然后在配置中使用该$ domainCreds变量,而不是adminCredentials。