如何通过PowerShell获取Azure Windows VM的计划信息?
我正在寻找可用于获取Azure Windows VM计划信息的PowerShell命令,我查阅了 Get-AzVM 的相关文档,但未能找到所需的信息。
以下是我在Azure门户上看到的、希望获取的对应属性:(为门户VM配置页的计划信息截图)
你要的计划属性(包括门户展示的发布者、产品、计划名等字段)无需额外命令,Get-AzVM 本身就包含该属性,只是默认输出不展示,手动指定属性路径即可获取:
单台VM查询
替换对应参数后执行,直接输出该VM的全部计划信息:Get-AzVM -ResourceGroupName "你的资源组名称" -Name "你的VM名称" | Select-Object -ExpandProperty Plan
返回字段和门户展示的对应关系:
Publisher:发布者Name:计划名称Product:产品PromotionCode:促销代码(如果存在)
批量查询
批量获取指定资源组下所有VM的计划信息:Get-AzVM -ResourceGroupName "你的资源组名称" | Select-Object Name, @{Name="Publisher";Expression={$_.Plan.Publisher}}, @{Name="PlanName";Expression={$_.Plan.Name}}, @{Name="Product";Expression={$_.Plan.Product}}
跨资源组查询订阅下所有带有效计划信息的VM:Get-AzVM | Where-Object {$_.Plan -ne $null} | Select-Object Name, ResourceGroupName, @{Name="Publisher";Expression={$_.Plan.Publisher}}, @{Name="PlanName";Expression={$_.Plan.Name}}, @{Name="Product";Expression={$_.Plan.Product}}
只有通过Azure市场镜像创建的VM才会有非空的Plan属性,使用平台通用镜像、自定义镜像创建的VM该字段为空,和门户的显示逻辑完全一致。
内容的提问来源于stack exchange,提问作者Zarak1

