如何使用Azure CLI将Azure资源导出为CSV文件
前置准备
- 先确认本地已安装Azure CLI,安装完成后打开终端、命令提示符或者PowerShell,执行登录命令完成身份校验:
az login - 如果你账号下有多个Azure订阅,先切换到要导出资源的目标订阅:
az account set --subscription "替换为你的订阅ID/订阅名称"
注意:跳过这步的话,导出的会是当前默认订阅下的资源,容易漏数据
基础导出操作
不需要安装额外扩展,直接用内置的az resource list命令配合CSV输出参数就能完成导出,直接执行以下命令即可导出当前订阅下所有资源的核心字段到本地CSV文件:az resource list --query "[].{资源名称:name, 资源类型:type, 所属资源组:resourceGroup, 部署区域:location, 资源ID:id}" --output csv > ./azure-all-resources.csv
参数说明:
--query后是你要导出的字段映射,格式为导出后的列名:资源对应的属性名,可以按需增减字段,比如需要导出资源标签就加标签:tags- 末尾的
> ./文件路径/文件名.csv是把命令输出的CSV内容重定向保存到本地指定路径,你可以换成自己需要的存储路径
自定义场景命令调整
- 仅导出指定资源组下的资源,加
-g参数指定资源组名即可:az resource list -g "替换为你的资源组名称" --query "[].{资源名称:name, 资源类型:type, 所属资源组:resourceGroup, 部署区域:location, 资源ID:id}" --output csv > ./single-rg-resources.csv - 仅导出指定类型的资源,比如所有虚拟机、存储账户,加
--resource-type参数指定资源类型:
例:导出所有虚拟机az resource list --resource-type "Microsoft.Compute/virtualMachines" --query "[].{虚拟机名称:name, 所属资源组:resourceGroup, 部署区域:location, 资源ID:id}" --output csv > ./all-vms.csv
常见问题处理
- 导出的CSV用Excel打开乱码:是终端默认输出编码和Excel识别编码不匹配导致,在PowerShell中执行导出命令前先运行以下命令设置输出编码为UTF-8即可:
$PSDefaultParameterValues['Out-File:Encoding'] = 'utf8' - 执行命令提示参数不存在/命令找不到:先执行
az version确认你的Azure CLI版本高于2.0.0,版本过低的话执行az upgrade完成升级后再操作。
内容的提问来源于stack exchange,提问作者Chandru N
相关产品推荐
相关产品推荐

