Home > Software design >  How to get list of all Azure subscriptions and resources using powershell (in specific format)
How to get list of all Azure subscriptions and resources using powershell (in specific format)

Time:11-15

I am trying to execute below powershell script to get list of all Azure subscriptions and resource details,

Get-AzSubscription | ForEach-Object {
    $subscriptionName = $_.Name
    Set-AzContext -SubscriptionId $_.SubscriptionId
    Get-AzResource | Select Name,ResourceGroupName,Location,Type
    } | Export-Csv azureinventory.csv

However, its just dumping the data in one column in mentioned CSV file. I need each column to display Subscription name, Subscription ID, associated resource name, resource groupname, location, Type.

Please help to update the script accordingly.

CodePudding user response:

I have updated the script and it is not tested. the parameter value can be different here. Kindly change it by verifying it from Get-Azresource.

$resources = @()
Get-AzSubscription | ForEach-Object {
    $_ | Set-AzContext
    $subscriptionName = $_.Name
    $subscriptionId = $_.SubscriptionId
    Get-AzResource | ForEach-Object {
        $resources  = [PSCustomObject]@{
            SubscriptionName  = $subscriptionName
            SubscriptionId    = $subscriptionId
            ResourceGroupName = $_.ResourceGroupName
            ResourceName      = $_.ResourceName
            ResourceType      = $_.ResourceType
            Location          = $_.Location
        }
        
    }
}
$resources | Export-csv c:\sompeath\somename.csv

CodePudding user response:

Below Script will help you to get the details of your current subscription name, tenant id, environment, account name(or select your subscription after logging) and also the resource groups in that subscription, each resource group name, type, location of each resource available in that resource group, where you can export into excel sheet with a specific format like:

enter image description here

Script:

$ErrorActionPreference =  "Stop"  
try  {  
Connect-AZAccount  
Set-AzContext  -SubscriptionName  'Your Subscription Name' 
$rgs =  Get-AzResourceGroup  
foreach  ($rg in $rgs.ResourceGroupName)  
{  
Write-Output  "Checking Resource Group: $rg"  
Get-AzResource  -ResourceGroupName $rg |  Select  Name,  ResourceGroupName,  Type,  Location  |  Export-Csv  .\AzureResources.csv -Append  -Force  -NoTypeInformation  
 }  }  
catch  {  
Write-Host  "$($_.Exception.Message)"  -BackgroundColor  DarkRed  
}

And the Output is:

enter image description here

It will check the resource groups existing or not. After that, open the AzureResources.csv file exported in the path where you executed your script in the PowerShell. The exported file shows the data of resource group name, each resource name, its type and location in the tabular format.

enter image description here

  • Related