Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Nutzerdaten aus Active Directory auslesen (https://www.delphipraxis.net/54604-nutzerdaten-aus-active-directory-auslesen.html)

DerAndereMicha 7. Okt 2005 13:56


Nutzerdaten aus Active Directory auslesen
 
Liste der Anhänge anzeigen (Anzahl: 2)
Hallo zusammen,

weiß jemand ob es ne Möglichkeit gibt die Daten (Adresse, Telefonnummer, ...) eines Nutzers
der in der Active Directory angelegt ist über den LOGIN mittels Delphi herauszubekommen
und wenn ja wie funktioniert es ?

Micha

jensw_2000 7. Okt 2005 17:22

Re: Nutzerdaten aus Active Directory auslesen
 
Das Active Directory kann mit ADO ausgelesen werden.
Die Abfragen macht man mit einem abgewandelten SQL Befehlssatz.

Ich habe hier mal ein kleines VB Beispiel fertiggemacht, welches das Prinzip verdeutlicht...

Code:
'###################################################################
'# VB Script ("".vbs)
'#  Autor: Jens Warkentin ([url]www.InnovaSoft.de[/url])
'###################################################################

Const ADS_SCOPE_SUBTREE = 2
Dim Wurzel,DOMAINROOT,Password
Set Wurzel = GetObject("LDAP://RootDSE")
'------------------------------------------------------------

DOMAINROOT = "'LDAP://"+Wurzel.Get("defaultNamingContext")&"'"

'ADO Commection erzeugen
Set objConnection = CreateObject("ADODB.Connection")
Set objCommand =  CreateObject("ADODB.Command")

'ADO Provider auswählen (exisiert nur auf DC's und auf PC's mit ADS Verwaltungstools)
objConnection.Provider = "ADsDSOObject"

'ADOConn connecten
objConnection.Open "Active Directory Provider"

'ADOCmd mit der ADOConnection verbinden
Set objCOmmand.ActiveConnection = objConnection

'ADOCmd CommandText setzen und ausführen
'Dieser Select holt alle Benutzerobjekte im AD
objCommand.CommandText = _
    "Select Name, Location, CN, DistinguishedName, ADsPath from " & DOMAINROOT &
    "Where objectCategory='person' AND objectClass='user' "
objCommand.Properties("Page Size") = 1000
objCommand.Properties("Searchscope") = ADS_SCOPE_SUBTREE
Set objRecordSet = objCommand.Execute

'Ergebnismenge durchlaufen
objRecordSet.MoveFirst
dim ADSPath,userobj,Vorname,Nachname,Email

Do Until objRecordSet.EOF
    ' vollqualifizierten LDAP Namen des Users holen
    ADSPath= "CN: " & objRecordSet.Fields("CN").Value & " " & "ADsPath: " & objRecordSet.Fields("ADsPath").Value

    'Benutzer Objekt erstellen (OLEVARIANT)
    set UserObj = GetObject(objRecordSet.Fields("ADsPath").Value)
    ' Werte auslesen
    UserObj.Getinfo
    Vorname = UserObj.FirstName
    Nachname = UserObj.LastName
    Telefon = UserObj.Email

    'Mach was mit Vorname, Nachname, Email ....

    'Benutzerobjekt freigeben
    set userobj = nothing
    'nächsten User holen
    objRecordSet.MoveNext
Loop

jensw_2000 7. Okt 2005 17:28

Re: Nutzerdaten aus Active Directory auslesen
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hier noch schnell ein VB Script aus meinem AdsScripter zum Anlegen von Usern.
Da findest du eigentlich alle Eigenschaften eines Benutzerobjektes wieder ...

Gute Infos dazu gibt es hier

:hi:


[edit]
Anlage vergessen .. :roll:
[/edit]

DerAndereMicha 10. Okt 2005 07:38

Re: Nutzerdaten aus Active Directory auslesen
 
Vielen Dank es funktioniert.

Micha


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:54 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