为什么ASM powershell模块无法访问某些订阅?

时间:2018-07-04 03:27:49

标签: powershell azure azure-resource-manager azure-powershell

Azure订阅是否绑定到ARM模型或ASM模型?

运行Get-AzureRmSubscription(基于ARM)和Get-AzureSubscription(基于ASM)时,得到了不同的结果。我以为我应该得到类似的结果。

我有AzureRM(6.4.0)和Azure(5.3.1)。我已经运行Add-AzureAccount(ASM),Add-AzureRmAccount(ARM),Connect-AzureRmAccount(ARM)。

我找不到任何文档。我发现了这个线程https://social.msdn.microsoft.com/Forums/en-US/a5a9d94e-882d-4443-bd18-fa55d95aed41/getazuresubscription-vs-getazurermsubscription?forum=azurescripting,但是它说订阅并不是天生的ASM或ARM。

2 个答案:

答案 0 :(得分:1)

注意:Azure RM PowerShell模型绑定到ARM模型。

此版本的Azure PowerShell不支持Azure经典部署模型。要支持经典部署,请遵循Install the Azure PowerShell Service Management module中的说明。

您可以按照以下步骤选择正确的订阅。

对于ASM模型:

登录到经典模型帐户。

Add-AzureAccount

使用以下命令获取可用的订阅:

Get-AzureSubscription | Sort SubscriptionName | Select SubscriptionName

设置当前会话的Azure订阅。本示例将默认订阅设置为“我的Azure订阅”。用您自己的示例名称替换示例订阅名称。

Select-AzureSubscription –SubscriptionName "My Azure Subscription"

对于ARM模型:

登录到您的ARM模型帐户。

 Add-AzureRmAccount

要更改当前订阅,请执行以下步骤:

Get-AzureRmSubscription

它将列出您的所有订阅。

Select-AzureRmSubscription -SubscriptionId xxxxx-xxx-xxx-xxxx

可以在Get-AzureRmSubscription的输出中找到SubscriptionID。您还可以使用SubscriptionName。

(Get-AzureRmContext).Subscription

确认您选择了正确的订阅。

答案 1 :(得分:0)

AFAIK,如果订阅是在一定时间后创建的,则很可能Get-AzureSubscription即服务管理器api对该订阅不可用。

这将确保仅使用新的资源管理器api创建所有资源。 ARM powershell仅适用于ARM模型,而ASM powershell仅适用于ASM模型。

有关ARM和ASM的更多详细信息,请参阅文章12