0

我在 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 上进行测试。

我该如何解决?

4

1 回答 1

2

我该如何解决?

这个问题的前提是有些东西坏了。事实并非如此,这种行为是设计使然。来宾帐户在允许执行的操作方面受到高度限制。

如果您希望允许来宾用户访问 WMI,那么您将需要修改来宾用户的权限以授予其更多权力。你应该三思而后行。本文详细讨论了所需的 WMI 用户权限:http: //community.zenoss.org/thread/12048

于 2013-09-17T06:37:34.957 回答