g.p*_*dou 3 powershell azure azure-powershell
上下文
我有一个Microsoft帐户,我有一个和Azure订阅它.我有访问权限(作为用户:所有者添加)到其他Microsoft帐户的其他订阅.
一切正常,当我使用我的唯一凭证登录到Azure门户时,我可以看到右上方菜单中列出的目录(租户?),所以我可以切换.切换到目录后,我可以看到该目录的订阅.
我想在PowerShell中使用此凭据.到目前为止,我成功地使用了Select-AzureRmSubscription,有趣的是我经历过,我可以省略-TenanttId参数,即使订阅是在其他租户下作为我的默认目录.(我想Select-AzureRmSubscription会迭代所有租户的所有订阅,以找到我在-SubscrptionId参数中提供的guid.(或者这只是一个"bug"?).无论如何,现在我已经切换到另一台客户端计算机,并且新近安装了AzureRM PowerShell模块,同样的Select-AzureRmSubscription在那里不起作用.所以我认为这个"bug"是"修复"的,现在我也必须使用-TenantId参数.但是我仍然有错误.
注意:所有工作都来自我的旧开发人员机器:我可以通过使用Select-AzureRmSubscription(甚至不使用-TenantId参数)在不同租户的订阅之间切换
我尝试过的:
$subscriptionId = "42940206-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
$tenantId = "ce8a477c-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
Login-AzureRmAccount
Select-AzureRmSubscription -SubscriptionId $subscriptionId -TenantId $tenanId
Run Code Online (Sandbox Code Playgroud)
我有以下错误消息:
Set-AzureRmContext:无法验证参数'SubscriptionId'的参数.参数"42940206-xxxx-xxxx-xxxx-xxxxxxxxxxxx"不属于ValidateSet属性指定的"0692a8b8-xxxx-xxxx-xxxx-xxxxxxxxxxxx"集.提供集合中的参数,然后再次尝试该命令.
什么是这个0692a8b8-xxxx-xxxx-xxxx-xxxxxxxxxxxx"由ValidateSet属性指定.它既不是我的订阅ID,也不是我的tenantIds ......
两台客户机之间的差异
工作:Poweshell 5,大约半年历史的AzureRM模块,由PowerShellGet的安装模块安装
不工作:Poweshell 4,最新的AzureRM模块,由PowerShellGet的安装模块安装
下一步的重要步骤是在新机器上安装PowerShell 5,但它是一台生产机器,很多都是稳定的,并且日复一日地运行PowerShell脚本,所以我不想冒破坏生产过程的风险......
小智 5
我遇到了类似的问题.如果订阅位于不同的租户中,我只会遇到问题.
对我来说,解决方法是获取订阅对象,然后选择它.因此,使用上面的示例,您已经$subscriptionId设置了所需的订阅ID值,您可以:
Get-AzureRmSubscription -SubscriptionId $subscriptionId | Select-AzureRmSubscription
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3068 次 |
| 最近记录: |