March 17, 2024

[PowerShell] Azure 전체 Resource Tag가져오기

사전 정보

hashTable을 PSCustomObject로 계속해서 쌓아 나갈 시 첫번째 Property의 정보로 Output이 생성된다.
예를 들어 첫번째 hashTable의 Tag가 OSversion, OS, Env 의 3가지일 경우 Output의 Property는 3개로 고정되어 다음 리소스의 Tag가 다를 경우에 반영이 되지 않음

Powershell

# 전체 구독에서 리소스 가져오기$subscriptions = @("sub1", "sub2")$resources=$nullforeach ($subscription in $subscriptions) {    Select-AzSubscription $subscription    ### 타겟으로 하는 리소스를 설정    $resources += Get-AzResource        # Get-AzVM}$UniqueTags = $resources.tags.GetEnumerator().keys | Sort-Object | Get-Unique$Output = @()foreach ($resource in $resources) {    $hashTable = [ordered]@{        Location = $resource.Location        ResourceGroupName = $resource.ResourceGroupName        ResourceName = $resource.Name    }    foreach ($tag in $UniqueTags) {        $hashTable.Add($tag, $resource.tags[$tag])    }    $Output += [PSCustomObject]$hashTable}$Output | export-csv -Path $OutputFile -NoTypeInformation

Sort-Object -CaseSensitive : 대소문자 구분 가능

Comments