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

如何通过Azure PowerShell获取Azure恢复服务保管库的存储大小?

获取恢复服务保管库存储大小的PowerShell解决方案

我完全理解你的困扰——Azure门户里明明能直观看到恢复服务保管库的存储使用大小,但你试过的Get-AzureRmRecoveryServices*系列cmdlet确实都没有直接提供这个属性。先提个重要的点:AzureRm模块已经被官方弃用,现在推荐使用Az模块,下面的方案也是基于Az模块来实现的。

当前功能现状

目前不管是旧的AzureRm还是新的Az模块,Recovery Services相关的cmdlet都没有直接返回保管库存储使用量的属性。官方暂时也没有公开的时间表说明会在cmdlet中添加这个功能,但我们可以通过另一种可靠方式获取到和门户完全一致的数据:Azure Monitor指标。

具体实现步骤

门户里显示的存储大小本质上是从Azure Monitor的BackupStorageUsed指标拉取的,我们可以用Get-AzMetric cmdlet来查询这个指标:

  1. 先确保你已经安装了Az模块(未安装的话执行以下命令):
Install-Module -Name Az -AllowClobber -Scope CurrentUser
  1. 连接到你的Azure账户并切换到目标订阅:
Connect-AzAccount
Set-AzContext -SubscriptionId "你的订阅ID"
  1. 编写脚本查询存储使用量:
# 配置你的保管库信息
$vaultName = "你的恢复服务保管库名称"
$resourceGroupName = "保管库所在的资源组名称"

# 获取保管库的资源ID
$vault = Get-AzRecoveryServicesVault -Name $vaultName -ResourceGroupName $resourceGroupName
$vaultResourceId = $vault.Id

# 查询最近24小时的存储使用指标(时间粒度可按需调整)
$metricData = Get-AzMetric `
    -ResourceId $vaultResourceId `
    -MetricName "BackupStorageUsed" `
    -Namespace "Microsoft.RecoveryServices/vaults" `
    -TimeGrain 01:00:00 `
    -StartTime (Get-Date).AddDays(-1) `
    -EndTime (Get-Date)

# 提取最新的存储值并转换为GB(默认返回单位是字节)
$latestStorageValue = $metricData.Data | Sort-Object TimeStamp -Descending | Select-Object -First 1 -ExpandProperty Average
$storageUsedGB = [math]::Round($latestStorageValue / 1GB, 2)

Write-Host "保管库 $vaultName 当前已使用存储: $storageUsedGB GB"

补充说明

  • 这个方法获取到的数值和Azure门户里显示的完全一致,因为门户后台就是调用同样的Monitor指标接口。
  • 如果需要更精确的时间点数据,可以调整TimeGrain参数(比如设置为00:05:00获取5分钟粒度的数据),或者修改StartTime和EndTime来指定查询范围。
  • 记得尽快从AzureRm模块迁移到Az模块,官方已经停止对AzureRm的更新和支持了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 03:45:39