AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Gruppen eines Users aus ActiveDirectory auslesen - von PC der NICHT in Domain ist
Thema durchsuchen
Ansicht
Themen-Optionen

Gruppen eines Users aus ActiveDirectory auslesen - von PC der NICHT in Domain ist

Ein Thema von ralfiii · begonnen am 11. Jan 2018 · letzter Beitrag vom 11. Jan 2018
Antwort Antwort
Benutzerbild von ralfiii
ralfiii

Registriert seit: 30. Mai 2007
489 Beiträge
 
Delphi 2010 Professional
 
#1

Gruppen eines Users aus ActiveDirectory auslesen - von PC der NICHT in Domain ist

  Alt 11. Jan 2018, 11:02
Hallo!

Ich muss die Liste der Gruppen auslesen, denen ein spezieller Benutzer angehört. Normalerweise kann ich das mit NetUserGetGroups tun, und zwar so:

Delphi-Quellcode:
function GetLDapUserGroups(UserName, DomainName : string) : TStringList;
var bufptr : Pointer;
  ServerName : String;
  EntriesRead : DWord;
  TotalEntries : DWord;
  buf : Pbyte;
  PGlobalGroupInfo : PGroupInfo0;
  i : integer;
begin
     result:=TStringList.Create;

     bufptr := nil;
     NetGetAnyDCName(nil, PWideChar(DomainName), bufptr);
     ServerName := PWideChar(bufptr);
     Delete(ServerName, 1, 2); // remove starting '\\' from server Name

     if NetUserGetGroups( PWideChar(ServerName), PWideChar(UserName), 0, buf, MAX_PREFERRED_LENGTH,
                          @EntriesRead, @TotalEntries)=NERR_SUCCESS then
     begin
          PGlobalGroupInfo := PGroupInfo0(buf);

          // Store group names in list
          for i:=0 to EntriesRead - 1 do
          begin
               result.Add(PGlobalGroupInfo^.grpi0_name);
               inc(PGlobalGroupInfo);
          end;
     end;
     NetAPIBufferFree(buf);
end;
Aber das funktioniert nicht, wenn mein Programm auf einem PC läuft, der nicht Teil der AD-Domäne ist. Es ist aber offensichtlich möglich, ich hab's mit "LDAP-Administrator" (von Softerra) e versucht, und dort funktioniert es.

Ich habe folgendes probiert:

* JclWin32.NetUserGetGroups - Nein. (Fast logisch, ich kann hier kein Benutzerpasswort angeben. Funktioniert aber gut, wenn der PC teil der Domäne ist)
* JwaLmaccess.NetUserGetLocalGroups - Nein. Auch keine Möglichkeit, ein Passwort zu übergeben
* NetApi.GetNetUserGroups - gleiche Geschichte hier
* CreateOleObject ('ADODB.Command') ... - Nein

Ich habe es gerade geschafft, das Passwort von Nicht-Domänen-PC zu überprüfen (siehe https://stackoverflow.com/questions/...part-of-domain ). Also habe ich versucht, die obige Kommandos auszuführen wenn ich angemeldet bin. Hat auch nix gebracht.

In den Jedi-Quellen hab ich die Funktion "JwaWinLDAP.ldap_search_sW" gefunden. Für mich riecht das vielversprechend, da ich den LDap-Token vom Anmeldevorgang weitergeben könnte. Ich habe jedoch keine Code-Beispiele für die Suche nach Benutzergruppen gefunden. Kann mir da jemand von euch damit helfen? Oder habt ihr sonst einen Tip wie das gehen könnte?

Kann mir bitte jemand in die richtige Richtung gehen? Vielen Dank!
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#2

AW: Gruppen eines Users aus ActiveDirectory auslesen - von PC der NICHT in Domain ist

  Alt 11. Jan 2018, 14:33
Vorher mit MSDN-Library durchsuchenNetJoinDomain der Domain beitreten und dann hast du wieder Zugriff?
$2B or not $2B
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:15 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz