HelperScripts/Get-MarketPlaceImages.ps1 (40 lines of code) (raw):

$Targets = @( @{Publisher = 'MicrosoftWindowsDesktop'; Offer = 'windows-10'; SkuPattern = "*avd*" } @{Publisher = 'MicrosoftWindowsDesktop'; Offer = 'windows-11'; SkuPattern = "*avd*" } @{Publisher = 'MicrosoftWindowsDesktop'; Offer = 'office-365'; SkuPattern = "*avd*" } ) $images = foreach ($target in $Targets) { $Skus = Get-AzVMImageSku -Location WestEurope -PublisherName $Target.Publisher -Offer $Target.Offer | Where-Object { $_.Skus -like $Target.SkuPattern } $Skus | foreach { $name = switch -Regex ($_.Skus -split "-") { "win(\d{2})" { 'Windows ' + $Matches[1] + ' Enterprise' } "\d{2}h\d" { $_ } "avd" { "multi-session" } "m365" { "+ Microsoft 365 Apps" } "g2" { "(Gen 2)" } } $_ | Add-Member -Type NoteProperty -Name "FriendlyName" -Value ($name -join " ") } $Skus } $images | select PublisherName, Offer, Skus, FriendlyName | sort Skus | ft $bicepImageReferenceOutput = $images | Sort-Object Skus | ForEach-Object { @" '$($_.Skus)': { publisher: '$($_.PublisherName)' offer: '$($_.Offer)' sku: '$($_.Skus)' } "@ } $bicepImageReferenceOutput | Set-Clipboard $portalUIMarketplaceOutput = $images | Sort-Object Skus | ForEach-Object { @" { "label": "$($_.FriendlyName)", "value": "$($_.Skus)" } "@ } $portalUIMarketplaceOutput -join "," | scb