如何使用PowerShell处理Azure订阅中的多个租户

时间:2016-03-04 13:42:22

标签: java windows powershell azure azure-powershell

我在Azure中有三个订阅帐户,并且使用java来执行远程应用程序的PowerShell命令。

我的PowerShell版本:

Major  Minor  Build  Revision
-----  -----  -----  --------
4      0      -1     -1

我有以下问题:

  1. 我需要能够在java上同时使用PowerShell 不同的Azure帐户。
  2. Select-AzureSubscription命令将帐户设置为默认帐户和当前帐户。但是,如果我在Select-AzureSubscription上使用-Default,则表示不推荐使用-Default。
  3. 选择订阅后,我需要所有命令 处理所选订阅。
  4. 我应该如何保持这些功能同时在不同的订阅上工作?

2 个答案:

答案 0 :(得分:4)

由于未指定您安装的Azure PowerShell模块版本,因此我建议您确保使用http://aka.ms/webpi-azps中提供的最新版本。

管理这些多个环境(新方法)的方法是使用Azure配置文件。例如(使用虚构名称),

# Create a profile
Login-AzureRmAccount -SubscriptionId "[subscription id (GUID)]" -TenantId "adatum.onmicrosoft.com"
Save-AzureRmProfile -Path "C:\adatum"   # Use a name meaningful to you.

# Create another profile
Login-AzureRmAccount -SubscriptionId "[subscription id (GUID)]" -TenantId "contoso.com"
Save-AzureRmProfile -Path "C:\contoso"   # Use a name meaningful to you.

# Create another profile
Login-AzureRmAccount -SubscriptionId "[subscription id (GUID)]" -TenantId "fabrikam.com"
Save-AzureRmProfile -Path "C:\fabrikam"   # Use a name meaningful to you.

然后,选择要用于会话的配置文件。例如,

Select-AzureRmProfile -Path "C:\contoso"
# Do work (invoke commands) on the Contoso tenant.

Select-AzureRmProfile -Path "C:\adatum"
# Do work (invoke commands) on the Adatum tenant.

依旧......

答案 1 :(得分:0)

@hari, 根据您的描述,我不确定您希望使用PowerShell管理它的服务。为了更好地开发PowerShell脚本,我建议您安装PowerShell ISE

如果您想使用服务管理API来管理您的服务,您可以按照此方法设置订阅。

PS C:\Users\user> Add-AzureAccount

PS C:\Users\user> $subscriptionList=Get-AzureSubscription | fl SubscriptionName,SubscriptionId,IsDefault,IsCurrent

PS C:\Users\user> $subscriptionList
PS C:\Users\user> function DoAction($subscriptionID){ $subscriptionID}

PS C:\Users\user> function SubscriptionList($subscriptionList){ for($i=0;$i -lt $subscriptionList.Length;$i++){DoAction($subscriptionList[$i].SubscriptionId);$subscriptionList[$i].SubscriptionId}}

PS C:\Users\user> SubscriptionList -subscriptionList $subscriptionList

如果您想管理Azure资源组,我建议您使用azure ARM模块处理您的操作,正如@Rick在上一篇文章中所述。您可以编写函数来执行逻辑。我建议您参考此文档:http://azurefabric.com/powershell-1-0-and-arm-tenants-and-subscriptions/