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

如何获取租户下所有Azure存储账户的已使用大小并导出至CSV?

导出租户下所有Azure存储账户已使用数据至CSV的PowerShell脚本

要实现获取租户内所有Azure存储账户已使用数据并导出为CSV的需求,可通过Az PowerShell模块完成遍历、指标采集与导出操作,以下是完整的解决方案:

前提条件

  • 已安装Az PowerShell模块(未安装可执行:Install-Module -Name Az -Scope CurrentUser -Repository PSGallery -Force)
  • 拥有租户内足够权限(如Reader、Storage Account Contributor)

完整脚本

# 登录Azure账户
Connect-AzAccount

# 获取租户下所有订阅
$subscriptions = Get-AzSubscription

# 初始化数组存储结果
$storageUsageData = @()

# 遍历每个订阅
foreach ($subscription in $subscriptions) {
    # 切换到当前订阅
    Select-AzSubscription -Subscription $subscription.Id | Out-Null

    # 获取当前订阅下所有存储账户
    $storageAccounts = Get-AzStorageAccount

    # 遍历每个存储账户
    foreach ($storageAccount in $storageAccounts) {
        # 获取存储账户已使用容量指标(取过去24小时最新值)
        $usageMetrics = Get-AzMetric -ResourceId $storageAccount.Id `
            -MetricName "UsedCapacity" `
            -TimeGrain 24h `
            -StartTime (Get-Date).AddDays(-1) `
            -EndTime (Get-Date) `
            -AggregationType Average

        # 处理指标数据,转换为GB单位
        $usedCapacity = if ($usageMetrics.DataPoints.Count -gt 0) {
            [math]::Round($usageMetrics.DataPoints[0].Average / 1GB, 2)
        } else {
            0
        }

        # 收集数据到结果数组
        $storageUsageData += [PSCustomObject]@{
            SubscriptionName    = $subscription.Name
            SubscriptionId      = $subscription.Id
            StorageAccountName  = $storageAccount.StorageAccountName
            ResourceGroupName   = $storageAccount.ResourceGroupName
            UsedCapacityGB      = $usedCapacity
            Region              = $storageAccount.Location
            LastMetricUpdate    = if ($usageMetrics.DataPoints.Count -gt 0) {
                $usageMetrics.DataPoints[0].TimeStamp
            } else {
                $null
            }
        }
    }
}

# 导出数据到CSV文件(文件名带日期戳)
$outputPath = "AzureStorageUsage_$(Get-Date -Format 'yyyyMMdd').csv"
$storageUsageData | Export-Csv -Path $outputPath -NoTypeInformation -Encoding UTF8

Write-Host "数据已成功导出至: $outputPath"

关键说明

  • 全订阅覆盖:脚本自动遍历租户下所有订阅,确保不会遗漏任何存储账户
  • 指标处理:采集UsedCapacity指标并转换为GB单位,适配仪表盘展示需求
  • 异常兼容:针对无指标数据的存储账户填充默认值,避免脚本中断
  • 多维度字段:输出包含订阅信息、存储账户属性、容量数据等字段,满足仪表盘多维度分析需求

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 19:00:58