如何使用 Powershell 管理多个 AzureRM 帐户

How to manage multiple AzureRM accounts with Powershell

我尝试使用 Login-AzureRmAccount 和 Add-AzureRmAccount 登录我的 Azure 帐户。我有两个,很容易通过 Add-AzureAccount 添加它们并使用 Select-Azuresubscription.

管理活动和默认一个

每次我使用 RM cmdlet Add-AzureRmAccount 时,它都会覆盖之前经过身份验证的命令。这让我很难在私人和公司 Azure 帐户之间切换。

有什么解决办法吗? 我正在使用 PowerShell Gallery 更新 Azure 和 AzureRM 模块并使用最新的模块。

官方的做法是这样的

$profile1 = Login-AzureRmAccount 
$profile2 = Login-AzureRmAccount

Select-AzureRmProfile -Profile $profile2

然后您可以使用

将配置文件保存到磁盘
Save-AzureRmProfile -Profile $profile1 -Path e:\ps\profile1.json 

然后您可以使用

加载
Select-AzureRmProfile -Path e:\ps\profile1.json 

不过,我个人的方法是创建一个模块,该模块提供一个带有 profile1、profile2 等作为参数的 cmdlet。然后它会下载和解密凭据并将它们提供给 Add-AzureRMAccount(这样我就可以使用来自不同位置的相同凭据文件)

使用Login-AzureRMAccout分别登录两个账号。然后使用Get-AzureRmSubscription查看订阅信息,记下两个TenantId。

要在私人和公司 Azure 帐户之间切换,您可以使用

指定 TenantId 参数
 $loadersubscription = Get-AzureRmSubscription -SubscriptionName $YourSubscriptionName -TenantId $YourAssociatedSubscriptionTenantId