10

当我执行以下命令时

Clear-AzureProfile
Connect-AzAccount -TenantID xxxxxxxxxxxxxxxxxxx
Set-AzContext -SubscriptionId xxxxxxxxxxxxxxxxxxx

Azure PowerShell我得到这个错误。

Set-AzContext : Please provide a valid tenant or a valid subscription.
At line:6 char:1
+ Set-AzContext -SubscriptionId xxxxxxxxxxxxxxxxxxx

Azure Cloud Shell如果我在它运行相同的命令

Name        Account         SubscriptionName    Environment    TenantId         
xxxx        xxxxxxx         xxxx                 xxxx             xxxx

我从免费试用切换到即用即付订阅,并在两种环境中使用即用即付凭据,但它不起作用。谁能帮忙

4

3 回答 3

10

关闭你的powershell并打开一个新的,或者使用Clear-AzContext,而不是Clear-AzureProfile。然后使用Connect-AzAccount -Tenant xxxxx -Subscription xxxxx,它应该可以工作。

于 2019-06-21T09:47:51.673 回答
1

如果您在同一个租户中循环订阅并且不想Connect-AzAccount多次登录,以下内容对我来说可以在订阅之间切换:

Remove-AzContext -InputObject (Get-AzContext) -Force | Out-Null;
$sub = Set-AzContext -Subscription $_.SubscriptionName;

在添加Remove-AzContext语句之前,我看到Set-AzContext由于某种原因实际上并没有将上下文切换到另一个订阅。

于 2019-10-31T21:35:36.497 回答
1

我曾经也遇到过这个问题,我的解决方案与在此基础上提供的解决方案不同。显然,在我们的 Azure Cloud Shell 中,我们有几个可用的上下文,因此,我们不必设置上下文(使用Set-AzContext),而是切换到一个或其他上下文,使用Select-AzContext

我可以使用列出上下文

Get-AzContext -ListAvailable

然后使用

Select-AzContext -Name ...

例如,在脚本中,我使用这一行命令切换到 ID 为 $SubscriptionID 的订阅:

Select-AzContext -name ((Get-AzContext -ListAvailable).Name -match $SubscriptionId)[0]

不优雅,但高效

我不知道为什么我们会处于这种情况。可能是因为我们正在使用来自另一个租户的受邀帐户进行管理。

希望这可以帮助处于与我们相同情况的人。

于 2020-01-03T14:24:45.903 回答