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

使用PowerShell获取Azure备份信息时遇类型及资源不存在错误求助

解决Get-AzRecoveryServicesBackupStatus报错及正确获取备份状态的方法

你遇到的问题核心是对Get-AzRecoveryServicesBackupStatus命令的用途理解有误:这个命令是用来检查单个受保护资源(比如Azure VM、Azure文件共享)是否已配置备份,而不是查询Recovery Services Vault本身的备份状态,所以你传入Vault的名称、资源组和类型参数,自然会提示“资源不存在”。

以下是正确获取所有Azure Backup Vault中备份状态(含最后备份日期、成功/失败状态)的步骤和代码:

正确操作流程

  1. 设置Recovery Services Vault上下文:先指定要操作的目标Vault
  2. 获取所有受保护的备份项:遍历每个Vault下的所有备份容器,提取其中的备份项
  3. 查询每个备份项的最新备份状态:针对每个备份项,获取其最近一次备份作业的结果和时间

PowerShell代码示例

# 获取所有Recovery Services Vault
$vaults = Get-AzRecoveryServicesBackupVault

# 遍历每个Vault,查询备份状态
foreach ($vault in $vaults) {
    Write-Host "=== 正在查询Vault: $($vault.Name) ===" -ForegroundColor Cyan
    # 设置当前Vault的上下文
    Set-AzRecoveryServicesVaultContext -Vault $vault

    # 获取所有受保护的容器(按类型区分,比如AzureVM、AzureStorage)
    $containers = Get-AzRecoveryServicesBackupContainer -ContainerType AzureVM, AzureStorage

    foreach ($container in $containers) {
        # 获取容器内的所有备份项
        $backupItems = Get-AzRecoveryServicesBackupItem -Container $container -WorkloadType $container.WorkloadType

        foreach ($item in $backupItems) {
            # 获取该备份项的最新备份作业
            $latestBackup = Get-AzRecoveryServicesBackupJob -Status Completed, Failed -BackupManagementType $item.BackupManagementType -WorkloadType $item.WorkloadType | 
                            Where-Object { $item.Name -eq $_.EntityName } |
                            Sort-Object EndTime -Descending |
                            Select-Object -First 1

            # 输出备份状态信息
            [PSCustomObject]@{
                VaultName              = $vault.Name
                ResourceGroupName      = $vault.ResourceGroupName
                ProtectedResourceName  = $item.Name
                ResourceType           = $item.WorkloadType
                LastBackupDate         = if ($latestBackup) { $latestBackup.EndTime } else { "从未备份" }
                BackupStatus           = if ($latestBackup) { $latestBackup.Status } else { "无备份记录" }
            }
        }
    }
}

关键说明

  • Get-AzRecoveryServicesBackupContainer:用来获取Vault下的所有备份容器,每个容器对应一类受保护资源(比如Azure VM容器、Azure存储账户容器)
  • Get-AzRecoveryServicesBackupItem:从容器中提取具体的备份项(比如某台VM、某个文件共享)
  • Get-AzRecoveryServicesBackupJob:筛选该备份项的最新完成/失败的备份作业,从中提取备份时间和状态

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 19:45:58