AGB  ·  Datenschutz  ·  Impressum  







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

Liste der Domain-User

Ein Thema von UweR · begonnen am 9. Aug 2005 · letzter Beitrag vom 24. Apr 2006
Antwort Antwort
UweR

Registriert seit: 15. Mär 2004
Ort: Bad Marienberg
219 Beiträge
 
Delphi 7 Professional
 
#1

Liste der Domain-User

  Alt 9. Aug 2005, 12:01
Hallo Leute,

wie kriege ich eine Liste aller Nutzer die sich in meiner Domäne befinden.
Gruß
UweR
  Mit Zitat antworten Zitat
Madlax

Registriert seit: 30. Aug 2004
Ort: Erkelenz
9 Beiträge
 
Delphi 7 Enterprise
 
#2

Re: Liste der Domain-User

  Alt 9. Aug 2005, 12:32
Hallo UweR,

die Möglichkeit, die mir auf die schnelle einfällt, wäre das komplette Active Directory nach allen Usern zu durchsuchen. Ich nehme an, dass du mit Nutzern die User meinst?
Das setzt jedoch voraus, dass du dich in Delphi mit Interfaces auskennst, welche dir Microsoft in der activeds.dll (%systemroot%\system32) zur Verfügung stellt.

Im MSDN steht dir eine Vielzahl von Quellen zur Verfügung, die die Verwendung der Interfaces erklären.

Habe dort auf Anhieb sogar ein Beispiel gefunden, dass auf deinen Fall zutreffen sollte:
http://msdn.microsoft.com/library/en..._for_users.asp

EDIT: Activeds.dll wirst du wohl nur auf Windows XP/MS Windows 2003 Server vorfinden. Bei anderen Systemen musst du, soweit mir bekannt, die Verwaltungstools für MS Windows Server 2003 installieren, diese sollten die Dll mit installieren.
Gruß,
Madlax
  Mit Zitat antworten Zitat
UweR

Registriert seit: 15. Mär 2004
Ort: Bad Marienberg
219 Beiträge
 
Delphi 7 Professional
 
#3

Re: Liste der Domain-User

  Alt 9. Aug 2005, 13:07
Hallo Madlax,

erst mal danke für die Antwort. Ich werd mich da schon irgendwie durchwühlen!
Gruß
UweR
  Mit Zitat antworten Zitat
Olli
(Gast)

n/a Beiträge
 
#4

Re: Liste der Domain-User

  Alt 9. Aug 2005, 13:09
Von welchem OS reden wir denn? Die LMAPI bietet dir Zugriff von NT bis 2003 und das AD (i.e., die ADS) erst ab 2000 - allerdings ließ sich der ADS-Client auch schon auf NT4 ab SP5(?) installieren.

Im letzteren Fall kannst du bequem über Scripting usw (siehe Madlax' Beispiel) arbeiten. Im ersten Fall mit folgenden APIs:
MSDN-Library durchsuchenNetUserAdd
MSDN-Library durchsuchenNetUserChangePassword
MSDN-Library durchsuchenNetUserDel
MSDN-Library durchsuchenNetUserEnum
MSDN-Library durchsuchenNetUserGetGroups
MSDN-Library durchsuchenNetUserGetInfo
MSDN-Library durchsuchenNetUserGetLocalGroups
MSDN-Library durchsuchenNetUserSetGroups
MSDN-Library durchsuchenNetUserSetInfo
  Mit Zitat antworten Zitat
UweR

Registriert seit: 15. Mär 2004
Ort: Bad Marienberg
219 Beiträge
 
Delphi 7 Professional
 
#5

Re: Liste der Domain-User

  Alt 9. Aug 2005, 13:55
Hallo Olli,

mit NetUserEnum kriege ich aber nur die lokalen Nutzer und nicht die aus der Domäne. Als OS gilts ab W2K-server aufwärts.
Gruß
UweR
  Mit Zitat antworten Zitat
Olli
(Gast)

n/a Beiträge
 
#6

Re: Liste der Domain-User

  Alt 9. Aug 2005, 13:58
Zitat von UweR:
mit NetUserEnum kriege ich aber nur die lokalen Nutzer und nicht die aus der Domäne.
Dann hast du vermutlich auch nicht den Servernamen angegeben (erster Parameter).

Zitat von UweR:
Als OS gilts ab W2K-server aufwärts.
Dann ist ADS (siehe oben) sowieso die bessere Alternative. In Perl habe ich sogar Code (PHP auch), aber mit Delphi kann ich leider nicht dienen
  Mit Zitat antworten Zitat
Madlax

Registriert seit: 30. Aug 2004
Ort: Erkelenz
9 Beiträge
 
Delphi 7 Enterprise
 
#7

Re: Liste der Domain-User

  Alt 9. Aug 2005, 14:34
Hallo UweR,

ich habe eben mal meine Sources durchgeschaut und habe was gefunden, dass dir wahrscheinlich helfen wird. Dabei handelt es sich um eine Funktion die dir alle User in einer Domäne per ADOQuery zusammensammelt.

Delphi-Quellcode:
Uses ActiveDS_TLB;

//Binds to an ADSI object using the current credentials.
Function ADsGetObject( lpszPathName: WideString;
                       Const riid : TGUID;
                         Out ppObject ): HRESULT; Safecall;

Function ADsGetObject; External 'activeds.dll';

Function GetObject( Path: String ): IDispatch;
Begin
  ADsGetObject( Path, IDispatch, Result );
End; {Of GetObject}

Procedure TfrmADSIx.Users;
Var iAdRootDSE : IADs;
    Conn : TADOConnection;
    Data : TADODataSet;
    Cmd : TADOCommand;
    varDefaultNC: Variant;
    strQuery : String;
Begin
  //Find users by searching Active Directory.
  //This can be run from any DSClient-enabled computer.
  Conn := TADOConnection.Create( NIL );
  Data := TADODataSet.Create( NIL );
  Cmd := TADOCommand.Create( NIL );

  //Get the default naming context.
  iAdRootDSE := GetObject( 'LDAP://RootDSE' ) As IADs;
  varDefaultNC := iAdRootDSE.Get( 'defaultNamingContext' );

  //Open the connection.
  Conn.Provider := 'ADsDSOObject';
  Conn.LoginPrompt := False;
  Conn.Open;
    
  //Build the query to find all of the users.
  strQuery := '<LDAP://' + varDefaultNC + '>;(objectClass=user);name;subtree';

  Cmd.Connection := Conn;
  Cmd.ParamCheck := False;
  Cmd.CommandText := strQuery;
  Data.Recordset := Cmd.Execute;

  //Iterate through the results.
  While Not Data.Eof Do Begin
      ShowMessage( 'Name: ' + Data.FieldByName( 'name' ).AsString );
      Data.Next;
  End;

  //Clean up.
  Data.Free;
  Cmd.Free;
  Conn.Free;
  iAdRootDSE := NIL;
End; {Of Users}
In diesem Beispiel wurde activeds.dll als Typbibliothek nach Delphi importiert.
Die Funktion "ADsGetObject" befindet sich ebenfalls in dieser Dll, nähere Infos dazu findest du im MSDN.
Gruß,
Madlax
  Mit Zitat antworten Zitat
renekr

Registriert seit: 27. Feb 2005
Ort: Karlsbad
534 Beiträge
 
Delphi 2007 Enterprise
 
#8

Re: Liste der Domain-User

  Alt 24. Apr 2006, 13:41
Hi Madlax ,
Ich habe mal versucht das AD mit der Typbibl. einzubinden und habe mit den Objects Probleme .
Kannst du mir da ev. weiterhelfen?

speziell damit:
Delphi-Quellcode:
 iAdRootDSE := GetObject( 'LDAP://RootDSE' ) As IADs;
  varDefaultNC := iAdRootDSE.Get( 'defaultNamingContext' );

Ich habe bei GetObject unseren AD Pfad angegeben aber weiß nicht was bei iAdRootDSE.Get reinsoll?

Danke.
  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 12:25 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