将参数传递给 Set-AzureRmVmDscExtension

将参数传递给 Set-AzureRmVmDscExtension

我试图获取由 Set-AzureRmVMDscExtension 触发的 PowerShell DSC 配置的传入参数,但运气不佳。想法是让 xRemoteFile 部分在参数中的 URL 处下载文件。该 URL 位于 $certificateSASToken 中

$dscConfigurationArguments =  @{ 
                            certificateToken = $certificateSASToken 
                           }

创建参数的哈希表,然后我调用;

Publish-AzureRmVMDscConfiguration -ConfigurationPath ".\DSC\webserver.ps1" -ResourceGroupName "MyResourceGroup" -StorageAccountName "MyStorageAccount" -Force

最后;

Set-AzureRmVMDscExtension -Version 2.72 -ResourceGroupName "MyResourceGroup" -VMName "WebServer1" -ArchiveStorageAccountName "MyStorageAccount" -ArchiveBlobName "webserver.ps1.zip" -AutoUpdate:$true -ConfigurationName "WebServer" -ConfigurationArgument $dscConfigurationArguments

在 DSC 配置中有

xRemoteFile TLSCertificateDownload
     {
       Uri = $certificateToken['certificateToken']
       DestinationPath = "C:\webcert.pfx"
       MatchSource = $false
     }

DSC 失败,因为 $certificateToken 为空。配置的哈希表一路顺利通过,因为我第一次错过了它的索引,它抱怨系统对象哈希表不是 URL。为什么没有通过?

答案1

你在资源中的引用是错误的,应该是:

xRemoteFile TLSCertificateDownload
     {
       Uri = $certificateToken
       DestinationPath = "C:\webcert.pfx"
       MatchSource = $false
     }

一旦传递到扩展,你的哈希表就会自动扩展

相关内容