Article View: pl.comp.lang.delphi
Article #346632ActiveDirectory
From: Sivy
Date: Fri, 08 Jun 2018 13:57
Date: Fri, 08 Jun 2018 13:57
99 lines
3322 bytes
3322 bytes
Witam
Potrzebuję się połączyć do AD aby pobrać listę użytkowników i ich
niektórych danych.
Znalazłem w internecie taki artykuł
http://agnisoft.com/white_papers/active_directory.asp
pliki do niego też udało się odnaleźć, skompilowałem, uruchomiłem,
odczytało userów i grupy do których należą.
Czyli to co chciałem na początek widzę że jest.
Zacząłem przeglądać kod, aby odczytać inne informacje niż na załączonym
'demie' (tam jest tylko username, fullname i description).
I tutaj nie udało mi się pobrać innych danych, chciałem pobrać np.
Firstname, lastname, email, cokolwiek bym chciał pobrać dostaje taki
komunikat.
---------------------------
Debugger Exception Notification
---------------------------
Project UserManager.exe raised exception class EOleException with
message 'Nie można odnaleźć właściwości katalogu w buforze'.
---------------------------
Break Continue Help
---------------------------
---------------------------
Usermanager
---------------------------
Nie można odnaleźć właściwości katalogu w buforze.
---------------------------
OK
---------------------------
https://images.tinypic.pl/i/00966/648qn5i87kny.png
I teraz nie wiem czy ja coś źle robię czy to może inaczej trzeba robić.
Dla testów 'podpiąłem się' pod kod z dema gdzie są odczytywane niektóre
wartości
procedure TfrmUser.trUserChange(Sender: TObject; Node: TTreeNode);
var usr : IAdsUser;
flags : integer;
begin
if Node = nil then Exit;
if FUseOpenObject then
ADsOpenObject('WinNT://' + FDomain + '/' + Node.Text, FUserName,
FPassword, 1, IADsUser, usr)
else
ADsGetObject('WinNT://' + FDomain + '/' + Node.Text, IADsUser, usr);
Assert(usr <> nil);
edtUserName.Text := node.Text;
edtFullName.Text := usr.FullName;
edtDescription.Text := usr.Description;
i dopisałem następne pola, np
ShowMessage(usr.FirstName);
ShowMessage(usr.LastName);
ShowMessage(usr.EmailAddress);
ale zawsze wyrzuca błąd jak wyżej.
Najbardziej też zależy mi na "extensionAttribute", żeby tam się dostać.
Czy ten kod może jest już nieaktualny i trzeba użyć czegoś innego ?
Jeżeli tak to proszę o jakieś wskazówki, jakiś komponent, kod, etc.
Link do paczki tutaj
https://www.dropbox.com/s/bk1oae0pcjupz5z/adsicode.zip?dl=0
Środowisko:
Delphi 2007
Windows server 2012R2
Windows server 2016
Pozdrawiam
--
Sivy
Technical Details
Message-ID:
<pfe20e$nj1$1@node2.news.atman.pl>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed2.atman.pl!newsfeed.atman.pl!.POSTED!not-for-mailShow Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed2.atman.pl!newsfeed.atman.pl!.POSTED!not-for-mail From: Sivy <another@NOSPAMpoczta.fm> Newsgroups: pl.comp.lang.delphi Subject: ActiveDirectory Date: Fri, 8 Jun 2018 15:57:33 +0200 Organization: ATMAN - ATM S.A. Lines: 99 Message-ID: <pfe20e$nj1$1@node2.news.atman.pl> NNTP-Posting-Host: 46.77.93.72 Mime-Version: 1.0 X-Trace: node2.news.atman.pl 1528466254 24161 46.77.93.72 (8 Jun 2018 13:57:34 GMT) X-Complaints-To: usenet@atman.pl NNTP-Posting-Date: Fri, 8 Jun 2018 13:57:34 +0000 (UTC) User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:52.0) Gecko/20100101 Thunderbird/52.8.0 X-Mozilla-News-Host: news://news.atman.pl:119 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit