我的申请要求如下。应用程序将在域管理系统上运行,该系统将ping该域下的所有计算机,它将从所有域系统获取磁盘驱动器,CPU和RAM详细信息。
每当我试图ping机器时,我都会收到错误
“RPC服务器不可用。(HRESULT异常:0x800706BA)”
我用来连接远程机器的代码是
ConnectionOptions options = new ConnectionOptions();
options.EnablePrivileges = true;
options.Impersonation = ImpersonationLevel.Impersonate;
options.Username = System.Configuration.ConfigurationSettings.AppSettings["AccessUserName"].ToString();
options.Password = System.Configuration.ConfigurationSettings.AppSettings["AccessPassword"].ToString();
options.Authority = "ntlmdomain:" + System.Configuration.ConfigurationSettings.AppSettings["DomainName"].ToString();
options.Authentication = AuthenticationLevel.Packet;
ManagementScope scope = new ManagementScope("\\\\" + sMachineIP + "\\root\\cimv2", options);
scope.Connect();
答案 0 :(得分:12)
我找到了解决方法。我是通过在Windows防火墙中启用Windows Management Instrumentation(WMI)规则来实现的。
- Windows防火墙。
- 通过Windows防火墙允许应用或功能。
- 为Windows Management Instrumentation(WMI)启用域权限。
醇>
您还可以查看其他一些内容。
答案 1 :(得分:1)
当Windows防火墙(或任何其他防火墙)阻止WMI连接时,可能会发生错误The RPC server is unavailable. (0x800706ba)
。请参阅Connecting Through Windows Firewall及相关文章。
当我在远程添加域管理员时,代码运行正常 机器的WMI控制远程安全属性。请检查下面 屏幕截图。
我怀疑这是真的。如果您无权访问WMI,则通常会出现Access is denied
错误。