Azure

將參數傳遞給 Set-AzureRmVmDscExtension

  • February 13, 2018

我正在嘗試為 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 為空。config 的雜湊表一直很好,因為我第一次錯過了它的索引,它抱怨系統對象雜湊表不是 URL。為什麼這個不通過?

您在資源中的引用是錯誤的,應該是:

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

一旦通過擴展,您的雜湊表就會自動擴展

引用自:https://serverfault.com/questions/896981