我试图获取由 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
}
一旦传递到扩展,你的哈希表就会自动扩展