4

次のようなコードで WINNT プロバイダーを使用して ADSI を照会しています。

var
  User : IADSUser;
begin
  User := GetObject('WinNT://'+domainname+'/'+username + ', user') as IADSUser;
  ...
  ...

ここで、GetObject は次のように定義されます。

function GetObject (const Name : string): IDispatch;
var
  Moniker : IMoniker;
  Eaten : integer;
  BindContext : IBindCtx;
  Dispatch : IDispatch;
begin
  OleCheck( CreateBindCtx( 0, BindContext ) );
  OleCheck( MkParseDisplayName( BindContext, PWideChar(  WideString( Name ) ), Eaten, Moniker ) );
  OleCheck( Moniker.BindToObject( BindContext, NIL, IDispatch,  Dispatch ) );
  Result := Dispatch;
end;

これは数年間問題なく機能しています.1つのインストールがありますが、特定のドメインで別のドメインからクエリを実行すると、ネットワークパスが見つかりませんというエラーが発生します. このセットアップには 4 つの異なるドメインがあります。ドメイン間には完全な信頼があり、ドメイン内からクエリを実行すると、問題のあるドメインでクエリが正常に機能します。これが他のドメインの 1 つから試行されたときです。他の多くのツールを使用してドメインを照会することは可能であるため、すべて問題ないようです。この特定のドメインがこの問題を引き起こしている理由はありますか?

4

0 に答える 0