【问题标题】:Azure powershell Select-AzureSubscription - error: the subscription name doesn't existAzure powershell Select-AzureSubscription - 错误:订阅名称不存在
【发布时间】:2016-04-29 22:56:12
【问题描述】:

我刚刚安装了最新的 powershell 1.1,并正在关注这篇博文,将反向 DNS 添加到我正在运行的现有 Linux 虚拟机中

https://azure.microsoft.com/en-us/blog/announcing-reverse-dns-for-azure-cloud-services/

我能够登录并运行 Get-AzureRmSubscription 以查看我的订阅:

SubscriptionName : Visual Studio Premium with MSDN
SubscriptionId   : XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX
TenantId         : XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX

SubscriptionName : Visual Studio Enterprise with MSDN
SubscriptionId   : XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX
TenantId         : XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX

如果我尝试运行 Set-AzureService 命令,一条错误消息告诉我需要设置默认订阅

我试过了

Select-AzureSubscription -Default 'Visual Studio Enterprise with MSDN'

Select-AzureSubscription -Default "Visual Studio Enterprise with MSDN"

Select-AzureSubscription -Default 'Visual Studio Premium with MSDN'

Select-AzureSubscription -Default "Visual Studio Premium with MSDN"

我什至尝试过只运行 Select-AzureSubscription,然后在出现提示时输入订阅名称,不带引号、单引号和双引号,但无法使其正常工作。

我不断收到错误消息,提示“订阅名称 'Visual Studio Enterprise with MSDN' 不存在”。

我也尝试使用“Select-AzureSubscription -SubscriptionID”和列出的订阅 ID 来执行此操作,结果相似。

我做错了什么?

【问题讨论】:

  • 谢谢,Dmitry - 起初它不起作用,但在添加 AzureAcount 之后就可以了
  • @Dmitry,是的,对我来说,它在 Add-AzureAccount 之后也有效。

标签: powershell azure subscription


【解决方案1】:

如果您使用的是资源管理器,正确的 cmdlet 是:

Get-AzureRmSubscription –SubscriptionName "<name>" | Select-AzureRmSubscription

或者只使用 -SubscriptionId 而不是 -SubscriptionName。

Select-AzureSubscription 用于管理经典资源。要使其正常工作,您还必须使用以下方法添加经典凭据:

Add-AzureAccount

【讨论】:

  • 谢谢,布鲁诺。运行 Add-AzureAccount 后,我​​能够成功运行 Select-AzureSubscription 命令而没有错误。
  • 另外,如果您对运行 Set-AzureService / Get-AzureService 有任何提示,我们将不胜感激。为了检查我的 VM 的设置,我尝试运行 Get-AzureService“myvmname”(VM 位于 myvmname.cloudapp.net),但得到“托管服务不存在”。
  • 关于 ARM 与 ASM 存在混淆。 ARM 是一种在 azure 中管理资源的新方法,只能使用新门户或通过 PowerShell azureRM cmdlet 创建和可视化。 “get-azureservice”等 Cmdlet 特定于 ASM 模型。如果您收到“服务不存在”,可能是因为您使用 ARM 部署了您的虚拟机,该虚拟机不使用虚拟机的云服务,因此 get-azureservice 没有用。尝试 Get-Command -Module AzureRM.Resources |获得帮助 |格式表名称、概要
  • 我在一年前的 2015 年 1 月创建了 VM,所以猜测是 ARM。从命令中,我运行 Get-AzureRmResource 并看到如下内容: Name : vmname ResourceId : /subscriptions/XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX/resourceGroups/vmname/providers/Microsoft.ClassicCompute/virtualMachines/vmname ResourceName : vmname ResourceType : Microsoft.ClassicCompute/virtualMachines ResourceGroupName : vmname Location : westus SubscriptionId : XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX 在文章中看到一些关于在公共 IP 地址资源上设置反向 DNS 属性的内容 - 任何想法使用哪个命令?
  • 请忽略最后一条评论 - 看起来我的 VM 与我的 Visual Studio Premium 帐户相关联,但我已将默认订阅设置为 Visual Studio Enterprise。切换默认订阅后,Get/Set-AzureService 命令完美运行。这也意味着我在 ASM 上。谢谢!
【解决方案2】:

您遇到的问题是“默认”参数已折旧。

如果你运行

Select-AzureSubscription -SubscriptionName "Visual Studio Premium with MSDN" `
                         -Default "Visual Studio Premium with MSDN"

你得到 -

警告:当前和默认参数已被弃用。 Select-AzureSubscription 将始终更新默认订阅

如果你只是运行

 Select-AzureSubscription -SubscriptionName "Visual Studio Premium with MSDN"  

你应该得到你正在寻找的结果。

【讨论】:

  • 谢谢,迈克尔。不幸的是,我仍然收到相同的错误消息。看起来在我的情况下也需要 Add-AzureAccount。
  • 但是,你是正确的, -Default 已被弃用,我不得不使用 -SubscriptionName 标志
  • 另外,如果您对运行 Set-AzureService / Get-AzureService 有任何提示,我们将不胜感激。为了检查我的 VM 的设置,我尝试运行 Get-AzureService“myvmname”(VM 位于 myvmname.cloudapp.net),但得到“托管服务不存在”
【解决方案3】:
  • Connect-AzureRmAccount 然后正常登录 Azure
  • 运行命令 cmdlet Get-AzureRmSubscription –SubscriptionName "&lt;name&gt;" | Select-AzureRmSubscription(参见@Br​​uno Faria 的回答)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-07-21
    • 2020-01-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-28
    • 1970-01-01
    相关资源
    最近更新 更多