我正在尝试使用PowerShell脚本来列出我在Azure中的VM,包括它们的操作系统。 我设法使用以下命令获取我的VM列表:
Get-AzureVM
但我无法找到操作系统版本。
我也知道要问WMI:
(Get-WmiObject -class Win32_OperatingSystem).Caption
但是我无法使用我在DMZ中使用的虚拟机,因为我没有与他们运行脚本的网络连接。
想法?
答案 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 标签: