WMI:RPC服务器不可用。 (尝试连接到远程计算机时抛出HRESULT异常:0x800706BA)

时间:2011-01-11 12:43:00

标签: c# .net wmi

我正在使用以下代码使用WMI连接到远程计算机:

   ConnectionOptions connOptions = new ConnectionOptions();
            connOptions.Impersonation = ImpersonationLevel.Impersonate;
            connOptions.EnablePrivileges = true;
            connOptions.Username = "admin";
            connOptions.Password = "password";
            ManagementScope scope = new ManagementScope(String.Format(@"\\{0}\ROOT\CIMV2", remoteMachine), connOptions);
            scope.Connect();

我遇到以下异常:RPC服务器不可用。 (HRESULT异常:0x800706BA)

检查了所有描述的in this knowledgebase article步骤,远程计算机上的一切正常。

用户是远程计算机上的管理员。

尝试过Wbemtest工具,结果相同

有没有人知道发生了什么?

3 个答案:

答案 0 :(得分:8)

如果您在Win7下,则必须以管理员身份运行应用程序。您还可以为connOptions.Impersonation属性尝试不同的值。你在远程机器上打开RPC端口了吗?尝试在两台计算机上关闭防火墙altogeter。

答案 1 :(得分:4)

此外,您需要在Windows防火墙中启用Windows Management Instrumentation(WMI)规则。

  

1] Windows防火墙。
  2]通过Windows防火墙允许应用程序或功能   3]为Windows Management Instrumentation(WMI)启用权限。

使用Windows防火墙启用或禁用WMI规则

  
      
  1. 控制面板中,点击安全,然后点击Windows防火墙。
  2.   
  3. 点击更改设置,然后点击例外标签。
  4.   
  5. 例外窗口中,选中 Windows Management Instrumentation(WMI)的复选框,以通过启用WMI流量   防火墙即可。
  6.         

    停用WMI流量,请清除该复选框。

您还可以在命令提示符下通过防火墙启用或禁用WMI流量。

使用WMI 规则组命令提示符启用或禁用WMI流量

在命令提示符处使用以下命令。键入以下内容以启用通过防火墙的WMI流量。

netsh advfirewall firewall set rule group="windows management instrumentation (wmi)" new enable=yes

键入以下命令以禁用通过防火墙的WMI流量。

netsh advfirewall firewall set rule group="windows management instrumentation (wmi)" new enable=no

答案 2 :(得分:1)

仍有问题,请按照以下链接为您提供帮助。

Connecting to WMI Remotely

即使我的所有防火墙都关闭,我也面临这个问题。

在命令运行下面,我的问题就解决了。

  
      
  1. netsh advfirewall防火墙设置规则组=" Windows管理   仪器仪表(wmi)" new enable = yes

  2.   
  3. netsh advfirewall防火墙添加规则dir = in name =" DCOM"   program =%systemroot%\ system32 \ svchost.exe service = rpcss action = allow   protocol = TCP localport = 135

  4.   
  5. netsh advfirewall防火墙添加规则dir = in name =" WMI"   program =%systemroot%\ system32 \ svchost.exe service = winmgmt action =   允许protocol = TCP localport = any

  6.   
  7. netsh advfirewall防火墙添加规则dir = in name =" UnsecApp" program =%systemroot%\ system32 \ wbem \ unsecapp.exe action = allow

  8.   
  9. netsh advfirewall防火墙添加规则dir = out name =" WMI_OUT"   program =%systemroot%\ system32 \ svchost.exe service = winmgmt action = allow   protocol = TCP localport = any

  10.