【问题标题】:Get Azure VM size inside on a windows machine在 Windows 机器上获取 Azure VM 大小
【发布时间】:2020-01-18 02:22:52
【问题描述】:

我只能访问托管在 Azure 上的 Windows VM。

有没有办法找出虚拟机内部的 VM 大小,例如通过命令行 (powershell / cmd),而不需要有关环境的更多信息,例如资源组或 VM 资源名称?

我确实找到了这样的方法,但它需要有关 VM 名称和资源组的信息:

$VM = Get-AzureRMVM –Name HSG-Linux1 –ResourceGroupName HSG-AzureRG
$VM.HardwareProfile

Source

【问题讨论】:

    标签: windows azure powershell azure-powershell


    【解决方案1】:

    您可以使用元数据来获取 VM 内部的 VM 信息,如下所示:

    Invoke-RestMethod -Headers @{"Metadata"="true"} -URI http://169.254.169.254/metadata/instance/compute?api-version=2019-03-11 -Method get
    

    更多详情,请参阅Azure Instance Metadata service。您也可以将输出作为变量,然后获取特殊属性。例如:

    $vm = Invoke-RestMethod -Headers @{"Metadata"="true"} -URI http://169.254.169.254/metadata/instance/compute?api-version=2019-03-11 -Method get
    $vm.vmSize
    

    或者像这样通过请求直接获取属性:

    $vmSize = Invoke-RestMethod -Headers @{"Metadata"="true"} -URI "http://169.254.169.254/metadata/instance/compute/vmSize?api-version=2019-03-11&&format=text" -Method get
    

    【讨论】:

    • 太好了,我搜索这个命令已经好几个小时了。感谢一百万查尔斯许。顺便说一句,$vm.compute.resourceGroupName 对我不起作用,但为此 $vm.vmSize 效果很好。
    • @EmbaBakar 这只是我所说的一个例子。您可以根据需要获取信息。然后,如果它适合您,您可以接受它作为答案。
    • 酷,您确实将答案更改为$vm.vmSize,这是一个很好的示例。现在我可以接受答案了。良好的合作。
    • @EmbaBakar 您取消标记答案的原因是什么?
    • 您为什么将正确的示例再次编辑为不工作的示例?以下命令是否适用于您的环境:$vm.compute.vmSize?在我的环境中。它没有给出输出,获得输出的正确方法是$vm.vmSize
    猜你喜欢
    • 1970-01-01
    • 2013-08-27
    • 1970-01-01
    • 2013-06-15
    • 1970-01-01
    • 2021-02-16
    • 1970-01-01
    • 2019-11-01
    • 1970-01-01
    相关资源
    最近更新 更多