如何判断我的 VM 是 Azure 中的 Gen1 还是 Gen2?

sou*_*ser 6 azure azure-virtual-machine azure-cli azure-cli2

我想知道我的 Azure VM(Windows + Linux)是 Gen1 还是 Gen2。az cli理想情况下,我希望通过或从实际服务器本身让它工作。我已经尝试过az vm list -g RG-Name -d,但它并没有真正显示此信息。有谁知道如何获得这个?

Bha*_*ara 4

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

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

az vm get-instance-view -g <rg-name> -n <vm-name>
Run Code Online (Sandbox Code Playgroud)

hyperVgeneration并在响应中查找属性:

{
...
  "instanceView": {
    "maintenanceRedeployStatus": null,
    "computerName": "gen2-BA",
    ...
    "hyperVgeneration": "V2",
    ...
    "osName": "Windows Server 2019 Datacenter",
    "osVersion": "Microsoft Windows NT 10.0.17763.0",
  },
...
}
Run Code Online (Sandbox Code Playgroud)

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

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
Run Code Online (Sandbox Code Playgroud)

响应将类似于: 列出虚拟机

尽管 Gen2 虚拟机的 SKU 名称也暗示了 Gen1 与 Gen2 的区别,但hyperVgeneration应该是要查找的确切属性。