wir würden gerne unser AD mittels LDAP auslesen und Infos in einer Access-DB
ablegen/importieren.
Hat das schon mal einer gemacht. Such schon geraume Zeit, finde jedoch nicht
zu diesem Thema (kann auch sein, das ich falsch Suche ;-))
Danke!
Guido
Schwer zu glauben! Nun ja, groups.google.de im IE eingeben, dann die
Suchbegriffe "access ldap auslesen". Der zweite Treffer bringt Dich auf
einen Code, den ich hier schon mehrmals gepostet habe, um das Active
Directory per LDAP direkt auszulesen (über ein ADO Recordset).
Einfachheitshalber hier nochmals, aber nur wenn Du versprichst, das zuerst
nochmals zu versuchen - das Suchen meine ich.
Gruss
Henry
--
Keine E-Mails auf Postings in NGs senden!
KB: http://support.microsoft.com/default.aspx
FAQ: http://www.donkarl.com (neu mit Suchfunktion!)
OH: Online Hilfe von Microsoft Access (Taste F1)
Downloads: http://www.dbdev.org
Public Function searchInAD( _
Optional sAMAccountName As Variant = Null, _
Optional sn As Variant = Null, _
Optional givenname As Variant = Null, _
Optional department As Variant = Null, _
Optional displayname As Variant = Null)
Dim objconn As Object
Dim objCommand As Object
Dim objRoot As Object
Dim objDomain As Object
Dim objRS As Object
Dim strDomain As String
Dim strSQL As String
Dim varSearch As Variant
On Error GoTo PROC_ERR
'ADO Connection ins AD aufbauen
Set objconn = CreateObject("ADODB.Connection")
objconn.Provider = "ADsDSOObject"
objconn.Open "Active Directory Provider"
'Command Objekt instanziieren und definieren
Set objCommand = CreateObject("ADODB.Command")
objCommand.ActiveConnection = objconn
'Pfad ins AD holen
Set objRoot = GetObject("LDAP://rootDSE")
strDomain = objRoot.Get("defaultNamingContext")
Set objDomain = GetObject("LDAP://" & strDomain)
'Query aufbauen
strSQL = "SELECT displayname, cn, " & _
"sAMAccountName, company, givenname, " & _
"sn, l, mail, department, telephoneNumber, " & _
"facsimileTelephoneNumber, " & _
"physicalDeliveryOfficeName" & _
" FROM 'LDAP://" & strDomain & "'" & _
" WHERE "
'Bedingung aufbauen
varSearch = Null
If Not IsNull(sAMAccountName) Then
varSearch = "sAMAccountName='" & sAMAccountName & "'"
End If
If Not IsNull(sn) Then
varSearch = (varSearch + " AND ") & _
"sn='" & sn & "*'"
End If
If Not IsNull(givenname) Then
varSearch = (varSearch + " AND ") & _
"givenname='" & givenname & "*'"
End If
If Not IsNull(department) Then
varSearch = (varSearch + " AND ") & _
"department='" & department & "*'"
End If
If Not IsNull(displayname) Then
varSearch = (varSearch + " AND ") & _
"displayname='" & displayname & "*'"
End If
'SQL Statement zusammensetzen
If Not IsNull(varSearch) Then
strSQL = strSQL & varSearch
End If
'und Befehl dem CommandObject übergeben
objCommand.CommandText = strSQL
'Query ausführen
Set objRS = objCommand.Execute
'Gefundene Einträge abarbeiten
If objRS.RecordCount > 0 Then
With objRS
.MoveFirst
While Not .EOF
Debug.Print "DisplayName = " & Nz(!displayname)
Debug.Print "Alias = " & Nz(!cn)
Debug.Print "PID = " & Nz(!sAMAccountName)
Debug.Print "BU = " & Nz(!company)
Debug.Print "FirstName = " & Nz(!givenname)
Debug.Print "LastName = " & Nz(!sn)
Debug.Print "Location = Nz(!l)"
Debug.Print "EMail = " & Nz(!mail)
Debug.Print "Departement = " & Nz(!department)
Debug.Print "Phone = " & Nz(!telephoneNumber)
Debug.Print "Fax = " & Nz(!facsimileTelephoneNumber)
Debug.Print "Office = " & Nz(!physicalDeliveryOfficeName)
.MoveNext
Wend
.Close
End With
End If
PROC_EXIT:
Set objRS = Nothing
Set objconn = Nothing
Exit Function
PROC_ERR:
MsgBox "Fehler beim Lesen des AD. Fehler-Nr. " & _
Err.Number & vbCrLf & vbCrLf & _
Err.Description & vbCrLf & vbCrLf & _
"Zusatzinformation: " & vbCrLf & _
"Domain = " & strDomain & vbCrLf & _
"Command: " & vbCrLf & strSQL
Resume PROC_EXIT
End Function
Guido Kuhlmann schrieb:
> Hat das schon mal einer gemacht. Such schon geraume Zeit, finde jedoch nicht
> zu diesem Thema (kann auch sein, das ich falsch Suche ;-))
Jo, stimmt mit Google und
ldap group:microsoft.public.de.access
bzw.
ad group:microsoft.public.de.access
bekommst du ziemlich alles was du suchst.
mfG
--> stefan <--
--
Access-FAQ http://www.donkarl.com/
KnowHow.mdb http://www.freeaccess.de
Newbie-Info http://www.doerbandt.de/Access/Newbie.htm
Guido Kuhlmann wrote:
Siehe Henrys Antwort in
Gruss - Peter
--
Ich beantworte keine Fragen per Email.
Mitglied im http://www.dbdev.org
FAQ: http://www.donkarl.com
Neben den Antworten, die Du hier bereits bekommen hast, hier noch ein Link
zum Thema :
Gruss
Jens
Jetzt geht dieser Link wieder. Weil in der Regel kam dann immer nach meinem
Posting die Frage, ob's denn nirgends ein vermünfriges Verzeichnis der AD
User/Computer Properties gebe und die Excel Datei von Richard Müller war
nicht mehr verfügbar.
Hier gleich mal der Link, damit diese Frage ausbleibt:
http://www.rlmueller.net/References/ADUCProperties.xls
Gruss
Henry
> Jetzt geht dieser Link wieder.
Hab' ich gar nicht bemerkt - ich habe in meinen AccessResources als letzten
Besuch der HP ( und den Test der Downloads ) den 14.7. dokumentiert - da
lief also noch alles; vielleicht wurde nur zwischenzeitlich dort ein wenig
gebastelt.
> Hier gleich mal der Link, damit diese Frage ausbleibt:
>
> http://www.rlmueller.net/References/ADUCProperties.xls
Den konkreten Link habe ich absichtlich nicht gepostet ;-)
Ich meine, die HP ist es wert, mal gründlich erforscht zu werden.
Gruss
Jens