Skip to content

Get-AvailableVMSize

Azure: Gets available virtual machine sizes

param(
	[Parameter(Mandatory = $true, ParameterSetName = "ResourceGroup")]
	[string]$ResourceGroupName,

	[Parameter(Mandatory = $true, ParameterSetName = "ResourceGroup")]
	[string]$VMName,

	[Parameter(Mandatory = $true, ParameterSetName = "Location")]
	[string]$Location
)

try {
	Import-Module Az.Compute -ErrorAction Stop

	[hashtable]$cmdArgs = @{ 'ErrorAction' = 'Stop' }

	if ($PSCmdlet.ParameterSetName -eq "ResourceGroup") {
		$cmdArgs.Add('ResourceGroupName', $ResourceGroupName)
		$cmdArgs.Add('VMName', $VMName)
	} else {
		$cmdArgs.Add('Location', $Location)
	}

	$ret = Get-AzVMSize @cmdArgs | Select-Object *
	Write-Output $ret
} catch {
	Write-Error $_
	exit 1
}

The name of the resource group containing the virtual machine.

The name of the virtual machine to get available sizes for.

The Azure location to query for available sizes.

An interactive directory of PowerShell scripts.