Vielleicht bin ich nur eingerostet oder stehe nur auf dem Schlauch. Jedenfalls liegt mein Problem in einer Ecke in der ich mich selten bewege. Vielleicht kann mir jemand helfen.
Das Problem: In einer Domain habe ich eine ActiveDirectory-Liste mit Mitgliedern. Der Domainname sowie der Name der AD-Liste ist bekannt. Die Mitglieder möchte ich gerne auslesen und in einer Tabelle auflisten.
Der unten stehende Code geistert hier im Forum herum, jedoch bekomme ich ihn nicht ans Laufen. Unter der Angabe einer ID (eines Benutzers) erhalte ich seinen Eintrag. Jedoch geht es zunächst darum den Benutzer in einer bestimmten ActiveDirectory-Liste zu ermitteln.
Muss eventuell nur der SQL geändert werden?
Gruß und Dank, Arthur
Option Explicit
Function funcADUserLookup(ad_field, sSearch, sADDomain)
Dim objConn As Object, objCommand As Object, objRS As Object
Dim strSQL As Variant
On Error Resume Next
Set objConn = CreateObject("ADODB.Connection")
objConn.Provider = "ADsDSOObject"
objConn.Open "Active Directory Provider"
Set objCommand = CreateObject("ADODB.Command")
objCommand.ActiveConnection = objConn
strSQL = "SELECT " & ad_field & " FROM 'LDAP://" & sADDomain & "' WHERE samaccountname = '" _
_
_
& sSearch & "'"
objCommand.CommandText = strSQL
Set objRS = objCommand.Execute
funcADUserLookup = objRS.Fields(ad_field).Value
Set objConn = Nothing
Set objCommand = Nothing
Set objRS = Nothing
End Function
Sub Test_Ablauf()
Dim oWSHShell As Object
Dim dom As String, sUser As String, sADDomain As String
Dim ouser As String, mail As String
On Error Resume Next
Set oWSHShell = CreateObject("Wscript.Shell")
dom = InputBox("domaene")
sUser = InputBox("user")
sADDomain = dom
ouser = funcADUserLookup("distinguishedName", sUser, sADDomain)
mail = funcADUserLookup("mail", sUser, sADDomain)
If ouser = "" Then
MsgBox sUser & " nicht gefunden!"
Else
MsgBox ouser & vbCrLf & mail & vbCrLf
End If
Set oWSHShell = Nothing
End Sub