When creating classic Azure VMs, I can find the most recent Ubuntu 14.04 image using this PowerShell:
Get-AzureVMImage | where { $_.ImageFamily -eq "Ubuntu Server 14.04 LTS" } | sort PublishedDate -Descending | select -First 1
Currently this gives me 14.04.5-LTS, which is perfect.
How can I do the same using Resource Manager PowerShell commandlets? The closest I can work out is:
Get-AzureRMVMImageSku -Location "East US" -Publisher "Canonical" -Offer "UbuntuServer"
which returns
Skus Offer PublisherName Location Id
---- ----- ------------- -------- --
...
12.10 UbuntuServer Canonical eastus /Subscriptions/3523a95a-af89-4e37-98f5-bdbd56dce1ba/Providers/Microsoft.Compute/Locations/eastus/Publishers/Canonical/ArtifactTypes/VMImage/Offers/UbuntuServer/Skus/12.10
14.04-beta UbuntuServer Canonical eastus /Subscriptions/3523a95a-af89-4e37-98f5-bdbd56dce1ba/Providers/Microsoft.Compute/Locations/eastus/Publishers/Canonical/ArtifactTypes/VMImage/Offers/UbuntuServer/Skus/14.04-beta
14.04.0-LTS UbuntuServer Canonical eastus /Subscriptions/3523a95a-af89-4e37-98f5-bdbd56dce1ba/Providers/Microsoft.Compute/Locations/eastus/Publishers/Canonical/ArtifactTypes/VMImage/Offers/UbuntuServer/Skus/14.04.0-LTS
14.04.1-LTS UbuntuServer Canonical eastus /Subscriptions/3523a95a-af89-4e37-98f5-bdbd56dce1ba/Providers/Microsoft.Compute/Locations/eastus/Publishers/Canonical/ArtifactTypes/VMImage/Offers/UbuntuServer/Skus/14.04.1-LTS
14.04.2-LTS UbuntuServer Canonical eastus /Subscriptions/3523a95a-af89-4e37-98f5-bdbd56dce1ba/Providers/Microsoft.Compute/Locations/eastus/Publishers/Canonical/ArtifactTypes/VMImage/Offers/UbuntuServer/Skus/14.04.2-LTS
14.04.3-LTS UbuntuServer Canonical eastus /Subscriptions/3523a95a-af89-4e37-98f5-bdbd56dce1ba/Providers/Microsoft.Compute/Locations/eastus/Publishers/Canonical/ArtifactTypes/VMImage/Offers/UbuntuServer/Skus/14.04.3-LTS
14.04.4-LTS UbuntuServer Canonical eastus /Subscriptions/3523a95a-af89-4e37-98f5-bdbd56dce1ba/Providers/Microsoft.Compute/Locations/eastus/Publishers/Canonical/ArtifactTypes/VMImage/Offers/UbuntuServer/Skus/14.04.4-LTS
14.04.5-DAILY-LTS UbuntuServer Canonical eastus /Subscriptions/3523a95a-af89-4e37-98f5-bdbd56dce1ba/Providers/Microsoft.Compute/Locations/eastus/Publishers/Canonical/ArtifactTypes/VMImage/Offers/UbuntuServer/Skus/14.04.5-DAILY-LTS
14.04.5-LTS UbuntuServer Canonical eastus /Subscriptions/3523a95a-af89-4e37-98f5-bdbd56dce1ba/Providers/Microsoft.Compute/Locations/eastus/Publishers/Canonical/ArtifactTypes/VMImage/Offers/UbuntuServer/Skus/14.04.5-LTS
14.10 UbuntuServer Canonical eastus /Subscriptions/3523a95a-af89-4e37-98f5-bdbd56dce1ba/Providers/Microsoft.Compute/Locations/eastus/Publishers/Canonical/ArtifactTypes/VMImage/Offers/UbuntuServer/Skus/14.10
14.10-beta UbuntuServer Canonical eastus /Subscriptions/3523a95a-af89-4e37-98f5-bdbd56dce1ba/Providers/Microsoft.Compute/Locations/eastus/Publishers/Canonical/ArtifactTypes/VMImage/Offers/UbuntuServer/Skus/14.10-beta
14.10-DAILY UbuntuServer Canonical eastus /Subscriptions/3523a95a-af89-4e37-98f5-bdbd56dce1ba/Providers/Microsoft.Compute/Locations/eastus/Publishers/Canonical/ArtifactTypes/VMImage/Offers/UbuntuServer/Skus/14.10-DAILY
15.04 UbuntuServer Canonical eastus /Subscriptions/3523a95a-af89-4e37-98f5-bdbd56dce1ba/Providers/Microsoft.Compute/Locations/eastus/Publishers/Canonical/ArtifactTypes/VMImage/Offers/UbuntuServer/Skus/15.04
...
I guess I can grep out the last ^14.04(.\d+)?-LTS$, but I don't like to rely on the naming convention remaining the same. Where is classic's ImageFamily and PublishedDate?
In ARM module, there is no PublishedDate with the image, we can use sku to list the most recent:
Update:
You are right, relying on the naming scheme is a bad idea. I find that in Azure ARM module, we can use Get-AzureRmVMImage | Sort-Object -Descending -Property PublishedDate: