Назад | Перейти на главную страницу

Передача аргументов в Set-AzureRmVmDscExtension

Я пытаюсь подобрать переданный аргумент для конфигурации PowerShell DSC, запущенной Set-AzureRmVMDscExtension, и мне не очень повезло. Идея состоит в том, чтобы раздел 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 имеет значение null. С хеш-таблицей конфигурации все работает нормально, потому что я пропустил ее индекс в первый раз, и она жаловалась, что хеш-таблица системных объектов не является URL-адресом. Почему это не проходит?

Ваша ссылка в ресурсе неверна, она должна быть:

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

После передачи в расширение ваша хеш-таблица автоматически расширяется