WMI从WebService调用

时间:2008-09-26 23:11:42

标签: web-services iis-6 wmi asmx

所以我创建了一个Web服务,它与WMI名称空间中包含的一组数据进行交互。当我在构建的开发Web服务器中使用ASP.net运行它时它工作正常,并按要求返回数据。但是当我将它发布到IIS 6服务器(win 2003)时,webservice不再允许我执行WMI方法调用。但它确实让我继续读它。

相反,它给了我:

  

System.Management.ManagementException:   访问被拒绝了   System.Management.ManagementException.ThrowWithExtendedInfo(ManagementStatus   errorCode)at   System.Management.ManagementObject.InvokeMethod(字符串   methodName,ManagementBaseObject   inParameters,InvokeMethodOptions   选项)at   System.Management.ManagementObject.InvokeMethod(字符串   methodName,Object [] args)

我试图通过将“Everyone”组添加到该WMI名称空间安全设置并为其提供完整的权限(我知道这是一个不好的做法,但我只想查看它是否可行)。包括执行)。然后重置IIS。但是我仍然遇到这个错误。

有人有任何想法吗?

2 个答案:

答案 0 :(得分:3)

使用IIS作为“正确的”用户帐户运行应该有效。

“每个人”群体并不意味着“绝对是每个人” - 这意味着“每个经过身份验证的用户”。如果您无法进行身份验证,那么您仍然不是每个人的一部分。如果您正在寻找需要网络权限的WMI资源,那么它仍然会失败。

除此之外,访问WMI需要用户权限,默认帐户IIS正在运行,因为没有。

答案 1 :(得分:0)

嗯,从技术上讲,每个人和“认证用户”都是不同的。

Everone包含“来宾”帐户和“来宾”群组,null和匿名连接。每个人都是每个人。 “经过身份验证的用户”是提供凭据的任何人。有点微妙,但很重要。

如果客人被禁用,那么我相信他们的所有实际目的都是相同的,尽管每个人都可能包含“空”和“匿名”会话。