powershell – Add-AzureAccount:索引超出范围.必须是非负数且小于集合的大小

8月4日发布了新版本的Azure power
shell模块(0.8.7.1).在其中,您可以创建凭据,然后可以将其传递给Add-AzureAccount函数. Add-AzureAccount允许您在当前的Power
Shell会话中引入帐户以使用.

$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帐户下的几个盒子,似乎有相同的结果.我得到一个有效的auth令牌返回中间的重定向(不确定是否是一个问题)然后得到索引超出范围.

我用以下变体做了这个:

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-azuresubscription -default”以查看您的默认订阅.然后,您可以使用“remove-azuresubscription”命令“删除”任何垃圾订阅.

然后,您可以使用PS为您的“默认”设置新的azure订阅.

我实际上已经向Azure PowerShell团队报告了这一情况,以便在此方案中获得更好的错误消息.
希望这解决了您的问题,其他错误可能会显示相同的错误消息.

点赞