【问题标题】:Add-AzureAccount : Index was out of range. Must be a non-negative and less than the size of the collectionAdd-AzureAccount :索引超出范围。必须是非负数且小于集合的大小
【发布时间】:2014-10-20 09:54:24
【问题描述】:

8 月 4 日,发布了新版本的 Azure powershell 模块 (0.8.7.1)。它能够创建凭据,然后您可以将其传递给 Add-AzureAccount 函数。 Add-AzureAccount 允许您拉入一个帐户以在当前 PowerShell 会话中使用。

$userName = "buildmaster@someaccount.onmicrosoft.com"
$securePassword = ConvertTo-SecureString -String "somepassword." -AsPlainText -Force
$cred = New-Object System.Management.Automation.PSCredential($userName, $securePassword)

Add-AzureAccount -Credential $cred

这让我可以摆脱弹出窗口或弄乱设置文件。

它似乎停止工作了! Add-AzureAccount(弹出一个窗口)和基于凭据的方式。他们现在返回一个索引超出范围的问题。

Add-AzureAccount : Index was out of range. Must be non-negative and less than the size of the collection.
Parameter name: index
At S:\QA\Azure Scripts\cm-azure-helpers.psm1:1128 char:5
+     Add-AzureAccount
+     ~~~~~~~~~~~~~~~~
    + CategoryInfo          : CloseError: (:) [Add-AzureAccount], ArgumentOutOfRangeException
    + FullyQualifiedErrorId : Microsoft.WindowsAzure.Commands.Profile.AddAzureAccount

使用 Fiddler 深入挖掘表明,对后端服务的 OAuth 调用似乎有效。我得到一个令牌返回。但后来我在过程中间也得到了一个 302,表明页面已经移动。我不知道该重定向在以前是否有效时是否存在。

有没有其他人体验过 Add-AzureAccount 功能就这样停止工作了?更重要的是 - 你找到解决方法了吗?

更新 - 更多信息

我现在已经在不同的 azure 帐户下尝试了几个盒子,似乎有相同的结果。我得到一个返回的有效身份验证令牌,中间有一个重定向(不确定这是否是一个问题),然后索引超出了范围。

我用以下变体做到了这一点:

PS:3 Azure 模块:0.8.6 PS:3 Azure 模块:0.8.7 PS:4 Azure 模块:0.8.6 PS:4 Azure 模块:0.8.7

【问题讨论】:

  • 此外,get-azureaccount 用于显示 PS 会话的活动帐户,现在它什么也不显示。

标签: powershell azure azure-storage azure-powershell


【解决方案1】:

我确切地知道是什么导致了我这个错误,以及我是如何解决它的(我以为我是唯一看到这个的人:))

发生的事情是我不小心在我的帐户中添加了虚假/空订阅。而这个空订阅已被设置为我的“默认”订阅。

运行“get-azuresubscription -default”以查看您的默认订阅是什么。然后,您可以使用“remove-azuresubscription”命令“删除”任何垃圾订阅。

你当然可以使用 PS 为你的“默认”设置一个新的 Azure 订阅。

实际上,我现在已将此情况报告给 Azure PowerShell 团队,以便在这种情况下获得更好的错误消息。 希望这可以解决您的问题,其他错误可能会显示相同的错误消息。

【讨论】:

  • 检查了分配的默认订阅,它似乎是正确的。以任何方式删除它并尝试重新添加它。这不起作用,因为我目前无法使用 add-azureaccount 验证我的帐户。 API 响应有些不同。我已经在多台机器上尝试了 0.8.6 和 0.8.7 的各种订阅,并得到相同的索引超出范围的问题。
【解决方案2】:

如果您进行提琴手跟踪,您应该会在登录调用之后立即看到(PowerShell 传入您的用户名/密码,应该有 1 次或多次调用 GET /subscriptions。

检查响应以查看其中是否有任何可疑之处。就像,它们中的任何一个都返回一个空主体、空数组、带有 id、名称等的订阅。

【讨论】:

  • 现在正在处理您的电子邮件回复!我想你已经搞定了。我正在处理的目录已被删除,这是我认为事情开始走下坡路的地方。我会告诉你的。
【解决方案3】:

我最近遇到了类似的问题。对我来说,“修复”是删除 C:\Users[username]AppData\Roaming\Windows Azure Powershell 中的文件(尤其是 WindowsAzureProfile.xml 文件)。下次我运行 Add-AzureAccount 时,创建了必要的文件并且一切正常。

【讨论】:

  • 我会试一试的。谢谢!
  • 我能够找到并删除所有这些文件。并注意无头(凭据)和弹出方法都会创建文件......然后给出索引超出范围错误。不过还是谢谢!寻找未来问题的地方。
【解决方案4】:

请使用:

Add-AzureRmAccount -SubscriptionId "id";

用于登录

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多