Azure Powershell - across MULTIPLE subscriptions in an EA

◇◆丶佛笑我妖孽 提交于 2019-12-25 00:16:46

问题


I have "billing reader" access to several hundred subscriptions in an EA.

I'm trying to get a list of virtual machines and their sizes across all subscriptions.

So currently when I run a "Get-AzureRMSubscription" it shows me all the subscriptions (hundreds of them), but i'm not sure how to actually run a script against all the subscriptions?

Would be great to get a "Get-AzureRMVM" across them all

Any suggestions? Thanks in advance!


回答1:


You can possibly do something like this:

$azureSubs = Get-AzureRMSubscription
$azureSubs | ForEach-Object {Select-AzureRMSubscription $_ | Out-Null; Get-AzureRMVM -WarningAction SilentlyContinue}

You are essentially setting an array variable to hold all your Azure Subscription and piping it to the ForEach-Object cmdlet to iterate all of the objects in the array. Then you pipe it to the Get-AzureRMVM cmdlet to list all VMs in each subscription.

This is definitely not optimized for performance and there might be better solutions out there, but at least you can run it and forget it.

The reason for the Out-Null and -WarningAction is to suppress the outputs you do not need.




回答2:


You didn't ask but for classic resources we have the following script run on a regular basis and its output stored in a SQL Database.

$subscriptions = Get-AzureSubscription
foreach ($sub in $subscriptions)
{
    $sub | Select-AzureSubscription
    Get-AzureService | % {
           Get-AzureDeployment -ServiceName $_.ServiceName 
        } | % { 
          New-Object -TypeName 'PSObject' -Property @{ 'ServiceName' = $_.ServiceName; 'Addresses' = $_.VirtualIPs.Address; } 
        } | sort Addresses | ft
}

% is ForEach-Object, ft is Format-Table although some kind souls may come along and try to edit this and make it harder to reuse. You can add/remove properties in the select statement to tailor your output as needed. Try it in one subscription to refined your needs, then create a script to make it easy to reuse.




回答3:


We recently released Azure Resource Graph to support these types of searches across multiple subscriptions. See documentation here https://docs.microsoft.com/en-us/azure/governance/resource-graph/overview



来源:https://stackoverflow.com/questions/53602818/azure-powershell-across-multiple-subscriptions-in-an-ea

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!