我正在为Azure中的基础架构创建编写一个自动化脚本,其中包含以下代码:
Azure-LoginAndPickSubscription -azureSubscriptionId $CONFIG_AZURE["SUBSCRIPTIONID"] `
-azureUsername $CONFIG_AZURE["USERNAME"] `
-azureEncryptedPassword $CONFIG_AZURE["PASSWORD"] `
-passwordKeyFilePath "$SCRIPT_DIRECTORY\private.key"
$solutionRoot = Split-Path -Path $SCRIPT_DIRECTORY -Parent
$storContext = (New-AzureStorageContext -StorageAccountName mystorename -StorageAccountKey "mystoragekey")
Publish-AzureVMDscConfiguration "$SCRIPT_DIRECTORY\NewDSC\InitialConfig.ps1" -ContainerName "windows-powershell-dsc" -Force -StorageContext $storContext
最后一行(Publish-AzureVMDscConfiguration)引发错误:
Publish-AzureVMDscConfiguration:对象引用未设置为 对象的实例。在 C:\ temp \ Base.Deploy \ ARM.Create.ps1:38 char:5 + Publish-AzureVMDscConfiguration“$ SCRIPT_DIRECTORY \ NewDSC \ Initia ... + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~ + CategoryInfo:未指定:(:) [Publish-AzureVMDscConfiguration],NullReferenceException + FullyQualifiedErrorId:System.NullReferenceException,Microsoft.WindowsAzure.Commands.ServiceManagement.IaaS.Extensions.DSC.PublishAzureVMDscConfigurationCommand
我检查了脚本(InitialConfig.ps1)是否存在,并且填充了$ storContext对象。可能导致这种情况的任何想法?
答案 0 :(得分:0)
@Carl, 从您的PowerShell代码和错误消息,您似乎在PowerShell中使用了ARM模式。但是,您的代码应使用ASM模式。我建议您可以使用Switch-AzureMode切换PowerShell模式,然后再次运行代码。请参阅此博客以查看其差异(Updated fiddle)。喜欢这个
PS C:\> Switch-AzureMode -Name AzureResourceManager
PS C:\>Switch-AzureMode -Name AzureServiceManagement
任何结果,请告诉我。