Windows Server 2008 R2上的远程WMI连接问题

我只是干净安装了Windows Server 2008 R2(x64)。 我有一个应用程序使用远程DCOM通信与服务器交谈并查询一些WMI对象。 使用pipe理员login进行WMI通信时,一切都很好。

当我在pipe理员组中添加一个新用户时(通过在新的用户创buildGUI中select用户作为pipe理员),这似乎不起作用。 我已经向用户提供了DCOM远程访问权限(使用http://jintegra.intrinsyc.com/support/com/doc/remoteaccess.html )以及WMI访问权限(使用http://www.poweradmin。 com / help / enableWMI.aspx )。 我还发现Server 2008 R2上的叛离registry键,并使新创build的用户成为所有者,并授予所有权限(使用http://www.opennms.org/wiki/WmiConfiguration#Windows_2008_R2 )。

即使这样,当我尝试连接,我不能一路走过。 我知道这一点,因为我看了Windows安全日志,我可以看到一个成功的证书validation,特殊login和login事件。

但是,我只是无法进一步进行。 我得到错误,无法连接到主机,然后我注销(从安全日志中find)。

我甚至不知道哪个服务不允许我访问。 有人曾经处理过这个问题吗? 如果你有一个快速的答案,这将是伟大的,否则,请告诉我如何正确阅读安全日志或其他日志,找出哪些服务是拒绝我访问。

此外,所有3个防火墙,域/公共/私人都被closures。

非常感谢!!

您可能还需要为正在尝试查询的对象设置ACL。 请参阅http://msdn.microsoft.com/en-us/library/aa374872%28v=vs.85%29.aspx

过去我必须这样做才能访问MS服务,事件日志等。

编辑:

简而言之,您可能需要使用pipe理帐户为您尝试访问的WMI对象设置ACL,然后才能通过非特权帐户访问它们。

这就是我在我们的环境中设置的方式:

configurationDCOM

  • 在要pipe理的服务器上单击开始,单击运行,键入DCOMCNFG,然后单击确定。
  • 在组件服务对话框中,展开组件服务,展开计算机,然后用鼠标右键单击我的电脑,然后单击属性。
  • 在我的电脑属性对话框中,单击COM安全选项卡。
  • 在启动和激活权限下,单击编辑限制。
  • 在“启动权限”对话框中,select“分布式COM用户”。 在用户权限下的允许列中,select远程启动,然后select远程激活,然后单击确定。
  • 在访问权限下,单击编辑限制。
  • 在“访问权限”对话框中,select“分布式COM用户”。 在“用户的权限”下的“允许”列中,select“远程访问”,然后单击“确定”。
  • 将用户帐户添加到要pipe理的计算机pipe理,本地用户和组中的分布式COM用户组。
  • 将用户帐户添加到要pipe理的计算机pipe理,本地用户和组中的性能日志用户组。

configurationWMI

  • 在要pipe理的服务器上单击开始,单击运行,键入wmimgmt.msc,然后单击确定。
  • 在控制台树中,右键单击“WMI控制”,然后单击“属性”。
  • 单击安全选项卡。
  • select根名称空间,然后单击安全性。
  • 在安全性对话框中,单击添加。
  • 在“select用户,计算机或组”对话框中,input用户帐户。 单击检查姓名button以validation您的input,然后单击确定。
  • 在“安全性”对话框的“权限”下,为用户帐户select“启用帐户”和“远程启用”。
  • 确保权限传播到所有子名称空间。

以上大部分可以使用组策略完成(自动化)。

现在设置ACL的服务,你可以做一些事情:

sc sdshow SCMANAGER

…获取服务pipe理器的ACL。 这将照顾到大多数Windows服务的访问。 然后,您将需要为上面的用户帐户添加ACL,如下所示:

(A ;; CC ;;; AU)(A ;; CCLCRPRC ;;; IU)(A ;; CCLCRPRC ;;; SU)(A ;; CCLCRPWPRC ;;; SY)(A ;; KA (A ;;; CCLCRPRC ;;; S-1-5-21-000000000-0000000000-0000000000-0000 )S:(AU; FA; KA ;;; WD) ; WD)

其中粗体部分是提出请求的用户帐户的UID。

事件日志的工作方式有点不同,但是您可以使用“wevtutil”来设置ACL。 其他对象也可能有不同的设置方法。

首先通过用户帐户在本地运行查询,然后让他们远程工作。