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 に答える