1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54
|
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Buttons, ExtCtrls, DB, ADODB, adsHlp, activeds_tlb,
ActiveX, ComCtrls;
...
private
_varDSRoot: OleVariant;
...
var
Root : IADs;
begin
//.Recherche du domaine.
ADsGetObject('LDAP://RootDSE', IID_IADs, Root);
_varDSRoot := Root.Get('defaultNamingContext');
//.Recherche de la liste des utilisateurs du domaine.
ADOQuery.Close;
ADOQuery.SQL.Clear;
ADOQuery.SQL.Add('select AdsPath, CN, SN, OU, DC');
ADOQuery.SQL.Add('from ''LDAP://' + _varDSRoot + '''');
ADOQuery.SQL.Add('where objectClass = ''user''');
ADOQuery.SQL.Add('order by sn');
//.Exécution de la requête.
try
ADOQuery.Open;
except
on E: Exception do
begin
ADOQuery.Close;
Application.MessageBox(PChar('.Erreur : la recherche de la liste des utilisateurs du domaine a échoué !' + #13#10 + E.Message), PChar(Caption + ' - erreur'), MB_ICONERROR + MB_OK);
Exit;
end;
end;
//.Si pas de réponse.
if ADOQuery.IsEmpty then
begin
ADOQuery.Close;
Application.MessageBox('.Pas d''utilisateurs du domaine trouvés !', PChar(Caption + ' - message'), MB_ICONEXCLAMATION + MB_OK);
end
else
begin
ADOQuery.First;
while not ADOQuery.Eof do
begin
ComboBox.Items.Add(ADOQuery.FieldValues['CN']);
ADOQuery.Next;
end;
ComboBox.ItemIndex := 0;
end; |
Partager