获取Azure订阅中Blob备份启用状态的PowerShell命令咨询
获取Azure Blob存储的备份启用状态
要获取「Enable Azure Backup for blobs」的状态,你需要查询Recovery Services Vault中关联的Blob备份保护项,而不是直接查策略。下面是具体的PowerShell命令:
1. 批量查询订阅内所有启用Blob备份的资源
先获取订阅下所有恢复服务 vault,再逐个查询其中的Blob备份项:
# 获取所有Recovery Services Vault $vaults = Get-AzRecoveryServicesVault # 遍历每个Vault,查询Blob备份保护状态 foreach ($vault in $vaults) { # 设置当前Vault上下文 Set-AzRecoveryServicesVaultContext -Vault $vault # 获取所有Blob类型的备份保护项 $blobBackupItems = Get-AzRecoveryServicesBackupItem -BackupManagementType AzureStorage -WorkloadType AzureBlob # 整理输出信息 foreach ($item in $blobBackupItems) { [PSCustomObject]@{ 恢复服务Vault名称 = $vault.Name 存储账户名称 = $item.StorageAccountName Blob容器名称 = $item.ContainerName 备份启用状态 = if ($item.ProtectionStatus -eq 'Protected') { "已启用" } else { "未启用/已停止" } 关联备份策略 = $item.PolicyName } } }
输出里的「备份启用状态」就是你要的选项状态,Protected代表已启用备份。
2. 查询单个存储账户的Blob备份状态
如果只需要检查特定存储账户,可以用这个命令:
# 替换成你的资源组和存储账户名称 $rgName = "你的资源组名称" $storageAccountName = "你的存储账户名称" $storageAccount = Get-AzStorageAccount -ResourceGroupName $rgName -Name $storageAccountName $vaults = Get-AzRecoveryServicesVault foreach ($vault in $vaults) { Set-AzRecoveryServicesVaultContext -Vault $vault # 根据存储账户ID查询备份项 $blobItem = Get-AzRecoveryServicesBackupItem -BackupManagementType AzureStorage -WorkloadType AzureBlob -Name $storageAccount.Id if ($blobItem) { Write-Host "存储账户 $storageAccountName 的Blob备份状态:$($blobItem.ProtectionStatus)" } else { Write-Host "存储账户 $storageAccountName 未启用Blob备份" } }
为什么Get-AzRecoveryServicesBackupProtectionPolicy没用?
这个命令是用来查看备份策略的配置(比如备份频率、保留期),而不是检查哪些资源实际启用了该策略的保护。要获取资源的备份启用状态,必须用Get-AzRecoveryServicesBackupItem来查询具体的保护项。
内容的提问来源于stack exchange,提问作者vincent simplon
相关产品推荐
相关产品推荐

