如何在Azure环境下通过PowerShell获取虚拟机的VmSize属性值
问题原因
Get-AzVM直接在控制台输出的VmSize是PowerShell格式化视图做的展示字段,该属性实际是嵌套在对象的HardwareProfile层级下,不是顶层属性,所以直接select VmSize无法匹配到对应字段,返回空值。
可用解决方案
- 方法1:自定义映射字段获取带表头的VmSize列表
# 完整写法 Get-AzVM | Select-Object -Property @{Name='VmSize';Expression={$_.HardwareProfile.VmSize}} # 简写版本 Get-AzVM | select @{n='VmSize';e={$_.HardwareProfile.VmSize}}
- 方法2:同时获取虚拟机基础信息+VmSize,和默认控制台输出格式一致
Get-AzVM | Select ResourceGroupName,Name,Location,@{n='VmSize';e={$_.HardwareProfile.VmSize}},OsType,ProvisioningState
- 方法3:直接获取所有VmSize的纯字符串值,无额外表头和格式
Get-AzVM | ForEach-Object { $_.HardwareProfile.VmSize }
验证方法
你可以执行Get-AzVM | Get-Member查看返回对象的完整属性结构,确认HardwareProfile属性下包含VmSize子属性。
内容的提问来源于stack exchange,提问作者Blimer
相关产品推荐
相关产品推荐

