用于获取具有特定功能的虚拟机SKU列表的PowerShell脚本(Get-AzComputeResourceSku)

yyhrrdl8  于 2022-11-10  发布在  Shell
关注(0)|答案(1)|浏览(110)

我想编写一个PS脚本来获取某个区域中的SKU列表,该区域启用了某些功能(如MaxDataDiskCount、CpuArchtureType等)。
在我的案例中,我想要具有UltraSSD可用功能的给定区域中的虚拟机SKU列表
Get-AzComputeResourceSku|where-Object{$.Locations-包含“eastus2euap”和$.ResourceType.Containes(“VirtualMachines”)}
这会打印很多行,而Capability字段是一个对象数组。我想对它们应用筛选器,并将VM SKU列入候选名单。

56lgkhnf

56lgkhnf1#

我可以想出下面的PS脚本

$Region = "westus" # change region here
$type = "virtualMachines"

$VMSKUs = Get-AzComputeResourceSku | Where-Object { $_.Locations -contains "eastus2euap" -and $_.ResourceType.Contains("virtualMachines") }

$OutTable = @()

foreach ($SkuName in $VMSKUs)
        {       
            foreach($capability in $SkuName.Capabilities)
            {
                if($capability.Name -contains "UltraSSDAvailable")
                {
                    if($capability.Value -eq "true")
                    {
                        foreach($insideCapability in $SkuName.Capabilities)
                        {
                            if($insideCapability.Name -contains "MaxDataDiskCount")
                            {

                                $OutTable += New-Object PSObject -Property @{
                                                                 "Name" = $SkuName.Name
                                                                 "MaxDataDiskCount" = $insideCapability.Value
                                                                 }
                            }
                        }
                    }
                }
            }
         }

$OutTable | select Name, MaxDataDiskCount | Sort-Object -Property Name | Format-Table

参考文献:I.https://learn.microsoft.com/en-us/azure/azure-resource-manager/troubleshooting/error-sku-not-available?tabs=azure-powershell
二、https://learn.microsoft.com/en-us/dotnet/api/microsoft.azure.commands.compute.automation.models.psresourcesku?view=az-ps-latest

相关问题