如何解决如何使用 Azure CLI 获取安装了操作系统的 Azure VMS 列表?
我运行以下命令并获取一个 vm 的列表,其中详细说明了安装的操作系统,但是,有没有一种方法可以为订阅中的所有 VMS 执行此操作,而不是一个一个地将其输出到 csv文件?我需要知道所有虚拟机上安装了哪个版本的 windows
az vm show -g $vmresourcegroup -n $vmname --query '[name,storageProfile.imageReference]'
解决方法
通过使用以下脚本,您可以使用 VirtualMachineName、操作系统及其 SKU 名称提取特定订阅下的虚拟机列表
az login
$result = az vm list --subscription <subscriptionName> `
--query "[].[name,storageProfile.imageReference.offer,storageProfile.imageReference.sku]"
$json = $result | ConvertFrom-Json
$json | % {
$item = New-Object PSCustomObject
$item | Add-Member -NotePropertyName "vmName" -NotePropertyValue $_.SyncRoot[0]
$item | Add-Member -NotePropertyName "Os" -NotePropertyValue $_.SyncRoot[1]
$item | Add-Member -NotePropertyName "sku" -NotePropertyValue $_.SyncRoot[2]
$item | Export-Csv C:\Users\Desktop\9.csv -NoTypeInformation -Append
}
,
关于您问题的第一部分:
az vm list
将返回当前订阅中的所有虚拟机。当它返回一组 vm 时,您还需要相应地调整 JMESPATH 查询:
az vm list --query '[].[name,storageProfile.imageReference]'
关于您问题的第二部分:
为了获得 csv 输出,您需要先展平输出,因为“imageReference”有几个子属性。
我从您问题中的标签中得知您正在 PowerShell 中运行 az cli:
az vm list -o json |
ConvertFrom-Json |
Select-Object -ExpandProperty StorageProfile -Property Name |
Select-Object -ExpandProperty ImageReference -Property Name |
ConvertTo-Csv
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。