Я пытаюсь подобрать переданный аргумент для конфигурации 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
}
После передачи в расширение ваша хеш-таблица автоматически расширяется