我有一台运行IIS 6的Windows 2003服务器,并且有一些脚本可以自动设置和创建网站。他们并没有在我调试的新服务器上工作(他们已经在另外3台W2K3服务器上开心地工作)。该问题似乎归结为IIS提供程序上的WMI安全性。下面的ASP代码代表了这个问题(尽管这不是导致问题的原始代码 - 这是对问题的简单演示)。从ASP访问IIS WMI提供程序的访问被拒绝错误
Set wmiProvider = GetObject("winmgmts:\\.\root\MicrosoftIISv2")
If wmiProvider is Nothing Then
Response.Write "Failed to get WMI provider MicrosoftIISv2<br>"
End If
Response.Write "Querying for IISWebService...<br>"
Set colItems = wmiProvider.ExecQuery("Select * From IISWebServer",,0)
Response.Write "Error: " & Hex(Err.Number) & " (" & Err.Description & ")<br>"
如果我在浏览器中运行此操作,我会在ExecQuery调用之后报告访问被拒绝的错误。我已经为根分支的IUSR_用户设置了WMI访问权限。事实上,我可以非常高兴地使用CIMV2提供程序查询IP地址信息。如果我把IUSR用户放在机器管理员组中,这一切都可以工作,但我真的不想那么做。
这必须是DCOM/WMI安全问题,但我无法弄清楚还有什么。任何人都可以摆脱光线吗?
您将需要通过明确的凭据,这些脚本因为运行他们需要很高的权限 – Lizz 2012-10-31 08:46:50
你能显示确切的错误吗?另外,Windows日志中是否有任何记录事件? – 2013-03-24 03:27:21