To get the capacity of Storage accounts and its services(Blobs,Files,Tables&Queues) in all subscriptions of Azure Account.

Harish Ch 11 Reputation points
2021-02-17T11:29:38.643+00:00

Hi ,
I have 50 storage accounts in 16 subscriptions of my azure account. I want the CSV file as output for the all storage accounts & its services(Blob,Table,File & Queue ) capacities through PowerShell.

So,I tried with the below mentioned script but I am not able to get the output. Please assist me to get the result.

Login to Azure

Connect-AzAccount

Select Azure Subscription

$Subs = Get-AzSubscription

foreach ($Sub in $Subs){

Select-AzSubscription -Subscription $Sub.Name | Set-AzContext

Collect Data

   $AllAzStorageCapacityInventory = @()

   $AzStorageAccounts = Get-AzResource  | Where-Object ResourceType -EQ Microsoft.Storage/storageAccounts
         $RGs = Get-AzResourceGroup | foreach{
         $CurntRG = $_.ResourceGroupName
         foreach ($AzStorageAccount in $AzStorageAccounts){

             $ctx = Set-AzCurrentStorageAccount -ResourceGroupName $AzStorageAccount.ResourceGroupName -AccountName $AzStorageAccount.Name

             $Resources = @("/subscriptions/{$Sub.Id}/resourceGroups/{$CurntRG}/providers/Microsoft.Storage/storageAccounts/{$ctx}/",
             "/subscriptions/{$Sub.Id}/resourceGroups/{$CurntRG}/providers/Microsoft.Storage/storageAccounts/{$ctx}/blobServices/default",
             "/subscriptions/{$Sub.Id}/resourceGroups/{$CurntRG}/providers/Microsoft.Storage/storageAccounts/{$ctx}/fileServices/default",
             "/subscriptions/{$Sub.Id}/resourceGroups/{$CurntRG}/providers/Microsoft.Storage/storageAccounts/{$ctx}/tableServices/default",
             "/subscriptions/{$Sub.Id}/resourceGroups/{$CurntRG}/providers/Microsoft.Storage/storageAccounts/{$ctx}/queueServices/default")
             $MtcName = @("UsedCapacity","BlobCapacity","FileCapacity","TableCapacity","QueueCapacity")

             foreach($Resource in $Resources){

             $Capacity = (Get-AzMetric -ResourceId "/subscriptions/{$Sub}/resourceGroups/{$CurntRG}/providers/Microsoft.Storage/storageAccounts/{$ctx}/blobServices/default" -MetricName $MtcName  -AggregationType Average ).Data

         }
       }
      }
Azure Storage Accounts
Azure Storage Accounts
Globally unique resources that provide access to data management services and serve as the parent namespace for the services.
2,715 questions
0 comments No comments
{count} votes

2 answers

Sort by: Most helpful
  1. Sumarigo-MSFT 43,801 Reputation points Microsoft Employee
    2021-02-18T13:53:10.62+00:00

    @Harish Ch Firstly, apologies for the delay in responding here and any inconvenience this issue may have caused.

    $sub = Get-AzSubscription | select Name  
    $sub | foreach {   
    Set-AzContext -Subscription $_.Name  
    $currentSub = $_.Name  
    $RGs = Get-AzResourceGroup | select ResourceGroupName  
    $RGs | foreach {  
    $CurrentRG = $_.ResourceGroupName  
    $StorageAccounts = Get-AzStorageAccount -ResourceGroupName $CurrentRG | select StorageAccountName  
    $StorageAccounts | foreach {  
    $StorageAccount = $_.StorageAccountName  
    $CurrentSAID = (Get-AzStorageAccount -ResourceGroupName $CurrentRG -AccountName $StorageAccount).Id  
    $usedCapacity = (Get-AzMetric -ResourceId $CurrentSAID -MetricName "UsedCapacity").Data  
    $usedCapacityInMB = $usedCapacity.Average / 1024 / 1024  
    "$StorageAccount,$usedCapacityInMB,$CurrentRG,$currentSub" >> ".\storageAccountsUsedCapacity.csv"  
    }  
    }  
    }  
    

    You can also view through Azure Portal

    69568-capture.png

    Hope this helps!

    Kindly let us know if the above helps or you need further assistance on this issue.

    ---------------------------------------------------------------------------------------------------------------------

    Please don’t forget to "Accept the answer” and “up-vote” wherever the information provided helps you, this can be beneficial to other community members.


  2. Harish Ch 11 Reputation points
    2021-02-19T08:39:13.61+00:00

    thanks and also need used capacity of blob, share, queue and table in the same sheet plz help