You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过PowerShell在Azure自动化账户中将脚本输出保存至Azure存储账户

在Azure自动化账户中用PowerShell将未标记资源列表保存到存储账户CSV文件

一、前期准备

  • 确保Azure自动化账户已创建,且已导入Az.Resources和Az.Storage模块(可从自动化账户的「模块」库中添加)
  • 创建目标Azure存储账户及Blob容器(用于存储CSV文件)
  • 给自动化账户的系统托管身份分配权限:
    • 对目标订阅的读取者权限(用于遍历所有资源)
    • 对存储账户的存储Blob数据参与者权限(用于写入Blob文件)

二、编写PowerShell运行书脚本

直接使用以下脚本,替换占位符为你的实际信息:

# 1. 通过自动化账户托管身份连接Azure
Connect-AzAccount -Identity

# 2. 筛选订阅中所有未标记的资源
$unTaggedResources = Get-AzResource | Where-Object { 
    $_.Tags -eq $null -or $_.Tags.Count -eq 0 
}

# 3. 整理需要导出的字段(可根据需求调整)
$outputData = $unTaggedResources | Select-Object ResourceId, Name, ResourceType, Location

# 4. 定义存储账户相关信息
$storageAccountName = "你的存储账户名称"
$containerName = "你的Blob容器名称"
# 生成带时间戳的文件名,避免覆盖
$blobName = "UntaggedResources_$(Get-Date -Format 'yyyyMMddHHmmss').csv"

# 5. 将数据转为CSV并上传到存储Blob
$csvContent = $outputData | ConvertTo-Csv -NoTypeInformation
$csvBytes = [System.Text.Encoding]::UTF8.GetBytes($csvContent -join "`n")

# 获取存储账户上下文
$storageContext = (Get-AzStorageAccount -Name $storageAccountName).Context

# 上传CSV内容到Blob
Set-AzStorageBlobContent -Context $storageContext -Container $containerName -Blob $blobName -ByteArray $csvBytes -Force

三、自动化账户配置要点

  • 在自动化账户的「身份」设置中启用系统分配身份,并完成权限分配(参考前期准备)
  • 若脚本执行报错,检查模块版本是否兼容(优先使用最新稳定版Az模块)
  • 可给运行书添加计划触发器,定期自动执行(比如每天凌晨生成最新未标记资源列表)

四、验证结果

登录Azure门户,进入目标存储账户的Blob容器,查找以UntaggedResources_开头的CSV文件,下载后即可查看未标记资源的详细列表。

内容的提问来源于stack exchange,提问作者DSH

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.24 09:54:18