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

执行Get-AzureRmRecoveryServicesAsrRecoveryPlan命令时遇空引用错误求助

排查Get-AzureRmRecoveryServicesAsrRecoveryPlan的“Object reference not set to an instance of an object”错误

我来帮你排查这个常见的空引用错误——这种问题大多和AzureRM模块的上下文设置或资源验证有关,按照下面的步骤逐一排查:

1. 先确认Recovery Services Vault上下文已正确设置

这是最容易忽略的前提:AzureRM的ASR(Azure Site Recovery)命令需要先指定要操作的Recovery Services Vault,否则命令不知道要访问哪个资源池,直接调用就会抛出空引用异常。

执行以下命令设置上下文:

# 替换为你的Recovery Services Vault名称
$vault = Get-AzureRmRecoveryServicesVault -Name "YourRecoveryVaultName"
Set-AzureRmRecoveryServicesAsrVaultContext -Vault $vault

设置完成后,再重新执行你的恢复计划查询命令。

2. 验证恢复计划名称是否真实存在

如果指定的恢复计划名称拼写错误、大小写不匹配(虽然Azure资源名称通常不区分大小写,但个别场景下会有问题),或者该计划根本不存在,也可能触发空引用错误(部分旧版本模块不会返回明确的“找不到资源”提示)。

先列出所有恢复计划确认名称:

Get-AzureRmRecoveryServicesAsrRecoveryPlan

对比输出结果,确保$rpname的值和实际存在的恢复计划名称完全一致。

3. 检查AzureRM.RecoveryServices模块版本

旧版本的AzureRM模块可能存在已知的空引用bug,建议更新到兼容的最新版本:

# 查看当前安装的模块版本
Get-Module -ListAvailable AzureRM.RecoveryServices

# 如果版本较旧,执行更新(需要管理员权限)
Update-Module AzureRM.RecoveryServices

注意:更新模块后可能需要重启PowerShell会话才能生效。

4. 确认账户权限足够

如果当前登录的Azure账户没有该Recovery Services Vault或恢复计划的读取权限,也可能导致异常返回。

在Azure门户中进入你的Recovery Services Vault,打开访问控制(IAM),检查当前账户是否拥有Recovery Services Contributor或Reader角色,没有的话请添加对应的权限。

5. 重置Azure会话

有时会话过期或上下文缓存异常,重新登录可以解决问题:

# 注销当前会话
Disconnect-AzureRmAccount

# 重新登录你的Azure账户
Connect-AzureRmAccount

你的原始报错信息:

PS C:\WINDOWS\system32> $rpname = "myrecoveryplan"
$recoplan = Get-AzureRmRecoveryServicesAsrRecoveryPlan -Name $rpname
Get-AzureRmRecoveryServicesAsrRecoveryPlan : 操作失败。Object reference not set to an instance of an object.
At line:2 char:13

  • $recoplan = Get-AzureRmRecoveryServicesAsrRecoveryPlan -Name $rpname

内容的提问来源于stack exchange,提问作者bhanush goswami

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 06:54:54