получаем namingContexts контроллера домена

Некоторую информацию можно получить от контроллера домена без авторизации, например, namingContexts.

function get_ldap_namingContexts(server: string): string;
var
  ldap: TLDAPsend;
  attr: TStringList;
begin
  ldap:= TLDAPsend.Create;
  attr := TStringList.Create;
  attr.Add('namingContexts');
  try
       ldap.TargetHost := server;
       ldap.TargetPort := '389';
         if ldap.Login then
          begin
           if ldap.Bind then
            begin
              ldap.SearchScope:=SS_BaseObject;
              if ldap.Search('', False, '(objectClass=*)', attr) then
               begin
                  result:= ldap.SearchResult.Items[0].Attributes.Get('namingContexts')
               end;
            end;
           ldap.Logout;
          end;
  finally
     ldap.Free;
     attr.Free;
  end;
end;

результатом работы этой функции будет: DC=domain,DC=loc

про другие параметры можно почитать здесь: https://msdn.microsoft.com/en-us/library/ms684291(v=vs.85).aspx

Поделиться
Отправить
 226   2019   free pascal   lazarus   ldapsend