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
相关产品推荐
相关产品推荐

