我在Azure中有三个订阅帐户,并且使用java来执行远程应用程序的PowerShell命令。
我的PowerShell版本:
Major Minor Build Revision
----- ----- ----- --------
4 0 -1 -1
我有以下问题:
我应该如何保持这些功能同时在不同的订阅上工作?
答案 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/