WMI是微软提供的Windows服务器的管理方式,可以很轻松获取各种系统信息。我试用了对DC和EXCHANGE服务器的访问效果都很好,但是在访问ISA代理服务器的时候出现了问题。上网找了一圈,明白了是ISA拒绝WMI访问,这个也是造成“RPC服务器不可用”(错误代码:0x800706ba)常见问题的原因之一。关于这个问题最有含金量的是如下两篇帖子:
http://blogs.technet.com/b/isablog/archive/2007/05/16/rpc-filter-and-enable-strict-rpc-compliance.aspx
http://forums.isaserver.org/m_410001100/mpage_1/key_/tm.htm#410001100

总结一下就是3点
1. ISA自定义规则会开启RPC协议的“strict RPC compliance”,而且还不能取消,开启之后就不能使用WMI访问了
2. 所以要新建一个访问规则,并去掉RPC协议的“strict RPC compliance”。
3. 除了RPC协议的135端口,WMI访问时还需要使用别的TCP端口,这个端口也要加入到访问规则里面。

理解了问题的原因,配置就不难了,按照第二个帖子里面的做法是:
1.确保访问ISA的主机不能在远程管理计算机组里面,这个组是开启“strict RPC compliance”的。可以新建一个用于WMI访问的计算机集,将需要访问ISA的主机加入这个集合。
2.新建一个自定义协议,让1025以上端口的TCP出站通信都允许。因为WMI访问的端口不是固定值,我设置的时候开启了全部非默认端口。
3.新建一个访问规则,将RPC(all interface)协议和自定义协议都加入规则,源是WMI访问计算机集,目的是本地主机,最后还要在规则的配置RPC协议里面清除“strict RPC compliance”选项。

启用新规则后再检查一下ISA日志,看看WMI的访问是不是匹配了新规则,如果匹配的是“允许从所选计算机使用 MMC 进行远程管理”这条规则,那么还是会失败,可以检测一下新规则中的主机IP和TCP端口是不是设置对了。还要提醒一下,WMI访问还必须是ISA管理员权限的账户。最后还有一个没解决的问题,两天ISA组成的NLB系统,不能直接用WMI访问其中任何一台,但可以直接访问NLB的虚地址,不清楚这是什么原因。不过一直觉得ISA做的不够好,有这种问题也不奇怪了。


 1. 新建的访问规则

自定义规则

2. 注意防火墙日志中匹配的规则是什么

匹配系统规则还是会造成不能访问

3. 使用wbemtest时,如果不新建规则,将会出现“RPC服务器不可用”错误提示。

 常见的“RPC服务器不可用”(错误代码:0x800706ba)