![]() |
Liste der Domain-User
Hallo Leute,
wie kriege ich eine Liste aller Nutzer die sich in meiner Domäne befinden. |
Re: Liste der Domain-User
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: ![]() 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. |
Re: Liste der Domain-User
Hallo Madlax,
erst mal danke für die Antwort. Ich werd mich da schon irgendwie durchwühlen! |
Re: Liste der Domain-User
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: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Re: Liste der Domain-User
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. |
Re: Liste der Domain-User
Zitat:
Zitat:
|
Re: Liste der Domain-User
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:
In diesem Beispiel wurde activeds.dll als Typbibliothek nach Delphi importiert.
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} Die Funktion "ADsGetObject" befindet sich ebenfalls in dieser Dll, nähere Infos dazu findest du im MSDN. |
Re: Liste der Domain-User
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. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:27 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz