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

PowerShell获取ASR复制受保护项缓存存储账户失败问题咨询

Azure ASR 复制项缓存存储账户PowerShell查询方案

无法获取ASR复制项使用的缓存存储账户,可正常获取运行状况、复制ID。
原有查询代码存在属性路径调用错误,无法正确读取缓存存储账户配置。


问题根因

  • protectedManagedDisks是受保护VM对应所有托管磁盘的数组集合,每块磁盘的缓存存储账户配置独立存储在数组元素中,原代码直接读取集合层级的属性,无法正确获取到有效值
  • 低版本Az.RecoveryServices模块存在ASR属性结构兼容性问题,也会导致属性读取失败

修复后完整代码

# 首次运行建议先升级到最新Az.RecoveryServices模块,执行:Install-Module Az.RecoveryServices -Force
$VaultName = 'Site-recovery-vault-westus'
$vault = Get-AzRecoveryServicesVault -Name $VaultName
Set-AzRecoveryServicesAsrVaultContext -Vault $vault
$fabric = Get-AzRecoveryServicesAsrFabric -Name asr-a2a-default-eastus
$container = Get-AzRecoveryServicesAsrProtectionContainer -Fabric $fabric
$replicationProtectedItems = Get-AzRecoveryServicesAsrReplicationProtectedItem -ProtectionContainer $container

# 获取复制项ID
foreach ($replicationProtectedItem in $replicationProtectedItems) {
    $vmId = $replicationProtectedItem.ProviderSpecificDetails.LifecycleId
    Write-Output "受保护项 $($replicationProtectedItem.FriendlyName) 的ID为 $vmId"
}

# 逐磁盘获取缓存存储账户ID
foreach ($replicationProtectedItem in $replicationProtectedItems) {
    Write-Output "`n===== 受保护项:$($replicationProtectedItem.FriendlyName) ====="
    $diskList = $replicationProtectedItem.ProviderSpecificDetails.ProtectedManagedDisks
    foreach ($disk in $diskList) {
        $cachesaId = $disk.PrimaryStagingAzureStorageAccountId
        Write-Output "磁盘 $($disk.DiskId) 对应的缓存存储账户ID为:$cachesaId"
    }
}

验证说明

  • 代码会遍历每个受保护VM下的所有托管磁盘,逐个输出对应缓存存储账户ID
  • 若单条磁盘输出结果为空,可直接登录Azure门户进入ASR恢复服务保管库,在对应复制项的磁盘配置页检查配置异常

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 08:54:04