如何确定我的VM在Azure中是Gen1还是Gen2?

问题描述

我想弄清楚我的Azure VM(Windows + Linux)是Gen1还是Gen2。理想情况下,我想通过az cli或实际服务器本身来使它工作。我已经尝试过az vm list -g RG-Name -d,但它并未真正显示此信息。有人知道如何获得吗?

解决方法

好问题。 VM实例视图信息中的hyperVgeneration属性公开了有关VM的详细信息,其中 V1 表示第1代VM, V2 表示第2代VM。

使用az vm get-instance-view,您可以尝试:

Chart.pluginService.register

,然后在响应中寻找az vm get-instance-view -g <rg-name> -n <vm-name> 属性:

hyperVgeneration

向前迈进一步,如果要查询Gen1 / Gen2 VM的订阅,则可以执行以下Azure CLI命令:

{
...
  "instanceView": {
    "maintenanceRedeployStatus": null,"computerName": "gen2-BA",...
    "hyperVgeneration": "V2",...
    "osName": "Windows Server 2019 Datacenter","osVersion": "Microsoft Windows NT 10.0.17763.0",},...
}

响应类似于: List VMs

尽管Gen2 VM的SKU名称也暗示了Gen1与Gen2的区别,az vm get-instance-view --ids $(az vm list --query "[].id" -o tsv) --query '[].{VMName:name,OS:storageProfile.osDisk.osType,SKU:storageProfile.imageReference.sku,HyperVgeneration:instanceView.hyperVgeneration}' -o table 应该是要查找的确切属性。