WMI以IIS6兼容模式读取IIS7中的root \ MicrosoftIISv2所需的权限

我需要使用WMI IIS6 API远程pipe理我的IIS7(Windows Server 2008)。 所以我添加了IIS6 WMI兼容性IIS6元数据库兼容性angular色来访问root \ MicrosoftIIsv2命名空间。

我有一个远程计算机上不是pipe理员的域帐户; 有了这个权利,一切都好。

我为我的域帐户configuration了这些权限,以便远程访问root\MicrosoftIIsv2 WMI名称空间; 请注意这些权限在IIS6和Windows Server 2003上完美工作

DCOM:

  • 分布式COM用户帐户>远程和本地访问DCOM

WMI:

  • Root \ CIMV2 (我也需要访问)>执行方法,启用帐户,远程启用
  • Root \ Default (我也需要访问)>执行方法,启用帐户,远程启用
  • Root \ MicrosoftIISv2 >执行方法,启用帐户,提供程序写入,远程启用

IIS元数据库(Metabase Explorer):

  • LM>完全控制( W3SVCinheritance这些权限)

我试图给C:\ Windows \ System32 \ inetsrv一些访问; 不知道是否需要。

我的问题是:

我无法列出IIS WebSites(\ root \ MicrosoftIISv2:IIsWebServerSetting.Name =“W3SVC / *”)。 我没有得到“访问被拒绝”,但没有任何返回。

  • 我的API和PowerShelltesting可以连接并执行根\ MicrosoftIISv2命名空间中的查询
  • 我可以读IIsComputer类
    • 例如: Get-WmiObject IIsComputer -namespace "ROOT\MicrosoftIISv2" -authentication PacketPrivacy | SELECT * Get-WmiObject IIsComputer -namespace "ROOT\MicrosoftIISv2" -authentication PacketPrivacy | SELECT *
  • 我无法读取IIsWebServerSetting,IIsWebServer …列出WebSites:查询返回一个空的集合
    • 例如: Get-WmiObject IIsWebServerSetting -namespace "ROOT\MicrosoftIISv2" -authentication PacketPrivacy | SELECT ServerComment Get-WmiObject IIsWebServerSetting -namespace "ROOT\MicrosoftIISv2" -authentication PacketPrivacy | SELECT ServerComment
  • 如果帐户是pipe理员所有查询都能正常工作
  • 我正在使用PacketPrivacy身份validation

FI:我有一个警告事件5605,有没有pipe理员的权利,这似乎没有影响:

根\ MicrosoftIISv2命名空间标有RequiresEncryption标志。 如果脚本或应用程序没有适当的身份validation级别,则可能会拒绝对此名称空间的访问。 将身份validation级别更改为Pkt_Privacy,然后再次运行脚本或应用程序


好吧,我有更多的信息,当我用我的pipe理员帐户使用IIS 6元数据库资源pipe理器时 ,我可以看到权限正确地inheritance了我的非pipe理员帐户。

但是,当我尝试使用非pipe理员帐户进行连接时, 我可以列出LM节点,但是当我尝试浏览子节点时,得到“拒绝访问,未能获取密钥的数据”

我会进一步检查。


我试图跟踪WMI活动,一切似乎都没问题; 这往往证实问题在于IIS权利。

解决。

WMI和IIS元数据库权限必须像在IIS 6上那样进行设置。所以他们对我来说是正确的。

该特性是在IIS元数据库上。 首先,在IIS 7中,如果要处理应用程序池, W3SVC权限将完全从根inheritance,而您必须在IIS 6上设置W3SVC/AppPools权限。

由于存在“兼容性”,主要区别在IIS 7元数据库文件系统中。 在IIS 6上,对inetsrv文件夹(这是Users的默认设置)和元数据库ACL的读取权限就足够了。

在IIS 7上,必须在IIS元数据库和IIS 7configuration文件夹上设置权限: %SYSTEMROOT%/system32/inetsrv/config (然后是.config文件)。 默认情况下,只有Administrators (这就是为什么它完全与pipe理员权限)和一些其他保留组可以访问此文件夹。

还有一点,如果您需要在应用程序池上执行Stop等方法,则此function需要configuration文件夹上的Write权限。