AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

AD users of group

Offene Frage von "CCRDude"
Ein Thema von cherry · begonnen am 15. Jul 2009 · letzter Beitrag vom 20. Okt 2011
Antwort Antwort
Seite 2 von 2     12   
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#11

Re: AD users of group

  Alt 17. Jul 2009, 21:01
also wie gesagt, meine Kapselung in der Unit ist nur für lokale Computer und nocht für Domain Server. Wenn du jetzt eine Kapselung auch für Domain Server machst, dann kannst du mir die Unit gerne zukommen lassen. Dann werde ich sie unter deinem namen auf meiner Homepage veröffentlichen.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von cherry
cherry

Registriert seit: 14. Nov 2005
561 Beiträge
 
RAD-Studio 2009 Ent
 
#12

Re: AD users of group

  Alt 21. Jul 2009, 13:49
Zitat von Luckie:
Mit LDAP habe ich nie richtig gearbeitet nur mal in der Schule kurz angeguckt. Aber ich konnte mich nicht richtig damit anfreunden. Die Win-APi ist mir da irgenwie lieber, deswegen würde ich es generell nur mit der Win-API machen. Aber das ist Ansichtssache.
Naja, ich bin jetzt, wie bereits erwähnt, daran, die API Funktionen zur einfachen Verwendung in Delphi zu kapseln. Nun was mir dabei auffällt, ist dass mit den reinen Win-APi Funktionen gar nicht alles bewältigt werden kann was ich möchte. Ist es nicht so, dass man mit LDAP viel mehr möglichkeiten hat aus dem AD zu lesen usw?!

An alle die schon öfters Programme rund ums AD geschrieben haben: Welche Schnittstellen verwendet ihr und mischt ihr auch die Schnittstellen?
(Mit mischen meine ich: Im selben Programm mal mit API Funktionen was aus dem AD zu lesen, dann mal mit LDAP usw..)
Ist das nur mein Gefühl, oder ist die ganze Welt verrückt geworden!?
  Mit Zitat antworten Zitat
Benutzerbild von cherry
cherry

Registriert seit: 14. Nov 2005
561 Beiträge
 
RAD-Studio 2009 Ent
 
#13

Re: AD users of group

  Alt 24. Jul 2009, 08:28
Na kommt schon, AD Programme gibts von euch doch sicher wie Sand am Meer...
Ist das nur mein Gefühl, oder ist die ganze Welt verrückt geworden!?
  Mit Zitat antworten Zitat
haraldr

Registriert seit: 16. Jan 2008
Ort: Saggsn
8 Beiträge
 
Delphi XE Enterprise
 
#14

AW: AD users of group

  Alt 19. Okt 2011, 18:05
Die Zeit vergeht... die Fragen bleiben die Gleichen

Ich werde gerade mit dem Problem konfrontiert, aus einem in Delphi(Pascal) geschriebenem Programm festzustellen, ob ein ADUser einer bestimmten ADGroup angehört. Zunächst einmal vielen Dank an Luckie und cherry für die Beiträge. Im Prinzip war es genau das, was ich suchte.
Habe also in meinem Programm die API Funktion NetGroupGetUser aufgenommen, bekomme aber generell den GroupNotFound Errorcode zurück. Ich benutze folgende Codezeile:
Code:
var
   Servern: string;
   Groupn: string;

...
NetError := NetGroupGetUsers(PWideChar(Servern), PWideChar(Groupn), 0, Member, MAX_PREFERRED_LENGTH,
      EntriesRead, EntriesTotal, nil);
...
Für Servern gebe ich den Namen des entsprechenden PC an, z.B. "DC001.network1.local", für Groupn die gewünschte Gruppe, z.B. "Administratoren".

Kann mir jemand auf die Sprünge helfen?

Beste Grüße
H.
  Mit Zitat antworten Zitat
Benutzerbild von Bummi
Bummi

Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
 
Delphi XE3 Enterprise
 
#15

AW: AD users of group

  Alt 19. Okt 2011, 18:16
@haraldr
passt zwar nicht ganz zu Deiner Anforderung, aber vielleicht kannst Du aus meinem Ansatz der entsprechende Abfrage selbst bauen ..
Delphi-Quellcode:
Procedure GetLDAPGrouplist(const Domain, Username, Password : String; list: TStrings);
var
    rs, conn, com : Variant;
    strADS, s : string;
    ft : TFileTime;
    arrVar: Array of variant;
    i:Integer;
begin

  conn := CreateOleObject('ADODB.Connection');
  com := CreateOleObject('ADODB.Command');
  try
    conn.Provider := 'ADsDSOObject';
    conn.Properties ('User ID') := Username;
    conn.Properties ('Password') := Password;
    conn.Properties ('Encrypt Password') := TRUE;
    conn.Properties ('ADSI Flag') := 3;
    conn.open;
    com.ActiveConnection := conn;
    strADS := '<LDAP://' + Domain + '>;(&(objectClass=user)(sAMAccountName='+USername+'));memberOf;subtree';
    Com.CommandText := strADS;
    Com.Properties['Page Size'] := 100000;
    Com.Properties['Searchscope'] := 2;
    Com.Properties['Cache Results'] := False;
    rs := Com.Execute;
    if Not rs.EOF then
    begin
      try
        arrVar := rs.Fields['memberOf'].Value
      except
        SetLength(arrVar,1);
        arrVar[0] := '';
      end;
    end;
    Rs := NULL;
  finally
    com := NULL;
    conn.Close;
    conn := NULL;
  end;
  for i := 0 to Length(arrVar) - 1 do
  begin
    s := Copy(arrVar[i],Pos('CN=',arrVar[i]) + 3,Length(arrVar[i]));
    s := Copy(s,1,Pos(',',s) - 1);
    list.Add(s);
  end;
end;
Thomas Wassermann H₂♂
Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)
  Mit Zitat antworten Zitat
haraldr

Registriert seit: 16. Jan 2008
Ort: Saggsn
8 Beiträge
 
Delphi XE Enterprise
 
#16

AW: AD users of group

  Alt 20. Okt 2011, 13:00
@Bummi,

vielen Dank.
Dieser Ansatz hat mir sehr geholfen. Die Tests in meinem lokalen Netzwerk (AD mit Windows 2008SBS) funktionieren!

Möglicherweise scheitert der API-Call NetGroupGetUsers() an Authentifizierungsproblemen...
das schließe ich mal daraus, dass ich bei der LDAP/ADO Lösung Nutzer und Kennwort übermitteln muss, um die Informationen zu erhalten.

Beste Grüße
H.
  Mit Zitat antworten Zitat
CCRDude

Registriert seit: 9. Jun 2011
678 Beiträge
 
FreePascal / Lazarus
 
#17

AW: AD users of group

  Alt 20. Okt 2011, 13:07
Für Servern gebe ich den Namen des entsprechenden PC an, z.B. "DC001.network1.local", für Groupn die gewünschte Gruppe, z.B. "Administratoren".
Das ist ja nun ein deutscher Gruppenname - hatte die API nicht extra Zweibuchstaben-Aliase für die Lokalisierungsproblematik? Müsstest Du den Net*-Funktionen also nicht hier zum Beispiel BA (für Builtin Admins) oder DA (für Domain Admins) übergeben?

Geändert von CCRDude (20. Okt 2011 um 13:07 Uhr) Grund: Typo
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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 11:14 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