PowerShell Azure - Get-AzureExtensionHighestVersion
function Get-AzureExtensionHighestVersion {
[CmdletBinding()]
PARAM ([string]$extension, [string] $location='AustraliaEast')
$sortProps = @{Expression = "PublisherName"; Descending = $True}, @{Expression = "Type"; Descending = $True},@{Expression = "Version"; Descending = $True}
$Results= Get-AzureRmVmImagePublisher -Location $location | Get-AzureRmVMExtensionImageType | Get-AzureRmVMExtensionImage |
Where-Object {$_.Type -LIKE "*$extension*"}
#replace version text with version object type $versions=$Results | Select-Object -Property PublisherName, Type, @{N='Version';E={([version] $_.Version)}}
# first sort the whole table, then groupby on a dummy key of Publisher+Type
# - then we only want the first from each group. voila!
$output = $versions | Sort-Object $sortProps | Select-Object *,@{N='XXX';E={$_.PublisherName+' '+$_.Type }} | Group-Object -Property XXX | Foreach-Object {$_.Group[0] | Select-Object Type,PublisherName,Version}
$output }
Get-AzureExtensionHighestVersion DSC