Azure VM。获取OS版本。电源外壳

时间:2016-01-29 14:08:06

标签: powershell azure operating-system

我正在尝试使用PowerShell脚本来列出我在Azure中的VM,包括它们的操作系统。 我设法使用以下命令获取我的VM列表:

Get-AzureVM

但我无法找到操作系统版本。

我也知道要问WMI:

(Get-WmiObject -class Win32_OperatingSystem).Caption

但是我无法使用我在DMZ中使用的虚拟机,因为我没有与他们运行脚本的网络连接。

想法?

2 个答案:

答案 0 :(得分:0)

对于新计算:

$json = Find-AzureRmResource -ResourceGroupName <resource group name>-ResourceType Microsoft.Compute/virtualMachines -ApiVersion 2015-11-01

返回一个可以查询的JSON blob,例如:

$json.properties.storageProfile.imageReference

会是这样的:

      "imageReference": {
        "publisher": "MicrosoftWindowsServer",
        "offer": "WindowsServer",
        "sku": "2012-R2-Datacenter",
        "version": "latest"
      },

对于ClassicCompute: 您无法获得操作系统版本,但您可以检查源图像名称,该名称应该为您提供一个字符串,您可以从中推断操作系统版本。

$json = Find-AzureRmResource -ResourceGroupName <resource group name> -ResourceType Microsoft.ClassicCompute/virtualMachines -ApiVersion 2015-11-01

返回JSON blob,获取源图像名称:

$json.properties.storageProfile.operatingSystemDisk.sourceImageName

e.g。 b39f27a8b8c64d52b05eac6a62ebad85__Ubuntu-14_04_2-LTS-AMD64的服务器20150506-EN-US-30GB

答案 1 :(得分:0)

Find-AzureRmResource不再可用。 相反,Get-AzureRmResource似乎已经取代了它。 但是,下面的命令没有提供操作系统版本的详细信息

$ json = Get-AzureRmResource -ResourceType Microsoft.Compute / virtualMachines -ApiVersion 2020-06-01 回声$ json

名称:mymachine ResourceGroupName:myresourcegroup 资源类型:Microsoft.Compute / virtualMachines 位置:伊斯特斯 ResourceId:/subscriptions/abcdefg-1234-5678-ffff-e8219072/resourceGroups/myresourcegroup/providers/Microsoft.Compute/virtualMachines/myresourcegroup 标签: