我使用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;
这已经工作了几年而没有问题我有一个安装虽然在特定域上的位置,但是从查询时遇到 网络路径未找到 错误一个 不同的 域名。此设置有4个不同的域。域之间存在完全信任,并且当从域内查询时,查询在违规域上工作正常。只是当从其他域之一尝试此操作时。可以使用许多其他工具查询域,因此一切似乎都可以。任何想法为什么这个特定的域可能会给这个问题?