我在Delphi XE3上开发程序。程序应通过WMI读取硬件信息。我的代码:
var
SWbemLocator1: ISWbemLocator;
Service: ISWbemServices;
...
begin
CoInitialize(nil);
SWbemLocator1 := CoSWbemLocator.Create();
Service:= SWbemLocator1.ConnectServer('.', 'root\CIMV2', '', '', '', '', 0, nil);
...
它工作正常,但在来宾Windows帐户ConnectServer调用异常“拒绝访问”,它不起作用。管理员和用户帐户运行良好。在Windows Vista / 7上进行测试。
我该如何解决?
答案 0 :(得分:2)
我该如何解决?
这个问题预先设定了某些东西被打破了。事实并非如此,这种行为是设计的。来宾帐户在允许的范围内受到很大限制。
如果您希望允许访客用户访问WMI,则需要修改访客用户的权限以授予其更多权力。你应该三思而后行。本文详细讨论了所需的WMI用户权限:http://community.zenoss.org/thread/12048