Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
916to920
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
916to920
916to920
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

LDAP Active Directory

LDAP Active Directory
21.10.2007 16:18:00
Marc
Hallo zusammen
wie kann ich simpel überprüfen, ob eine emailadresse mit einer in der AD übereinstimmt?
im excel gebe ich eben einen usernamen "vorname.nachname" ein, anschliessend möchte ich tippfehler überprüfen (vergleich mit der ad) und auch gleich dem user ein mail schicken.
mail verschicken ist gelöst, aber eben die ad abfrage mit der mailadresse...da ich noch viel tiefer in die ad geschichte rein möchte (user in gruppen zuordnen) bin ich auch über buch oder internet-tipps dankbar.
kann da jemand weiterhelfen?
grüsse aus der schweiz
marc

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: LDAP Active Directory
22.10.2007 22:22:00
Tino
Hallo,
kann dir einen Code zum lesen der Adressen geben.
Musst Ihn nur noch etwas für deine Bedürfnisse anpassen!

Sub kontakte_lesen()
Dim KobjOutlook As Object
Dim KobjNS, KobjMF, KobjIt As Object
Dim AktuellerUserKontakte, zaehler, a As Variant
Set KobjOutlook = CreateObject("Outlook.Application")
Set KobjNS = KobjOutlook.GetNamespace("MAPI")
AktuellerUserKontakte = KobjNS.CurrentUser
For a = 1 To 20
On Error Resume Next
Set KobjMF = KobjNS.GetDefaultFolder(10)
If KobjMF = "Kontakte" Then Exit For
Next a
Set KobjIt = KobjMF.Items
KobjIt.Sort "[Lastname]", False
For zaehler = 1 To KobjIt.Count
Cells(1 + zaehler, 1) = KobjIt(zaehler).LastName & ", " _
& KobjIt(zaehler).Firstname
Next zaehler
End Sub
'**************weitere Optionen für Kontakte lesen
'CustomerID
'Title
'Firstname
'Middlename
'LastName
'Suffix
'FullName
'Jobtitle
'Categories
'Nickname
'Profession
'Gender
'BusinessAdressStreet
'BusinessAdressCity
'BusinessAdressState
'BusinessAdressPostalCode
'BusinessAdressCountry
'BusinessAdress
'HomeAdressStreet
'HomeAdressCity
'HomeAdressState
'HomeAdressPostalCode
'HomeAdressCountry
'HomeAdress
'BusinessTelephoneNumber
'BusinessFaxNumber
'HomeTelephoneNumber
'HomeFaxNumber
'EmailAddress1
'EmailAddress2
'MobileTelephoneNumber
'AutoTelephoneNumber
'ISDNNumber


Gruss
Tino

Anzeige
AW: LDAP Active Directory
23.10.2007 07:34:20
Marc
hallo tino
dein script bezieht aber die quelle von der kontaktliste des outlooks. ich sollte einene vergleich vom ldapverzeichnis in der ad machen können.
besten dank für deine mithilfe
gruess marc

AW: LDAP Active Directory
23.10.2007 07:42:00
Tino
Hallo,
was ist ein idapverzeichnis?
Gruss
Tino

AW: LDAP Active Directory
23.10.2007 07:49:51
Marc
hey, ups da het sich ein tippfehler eingeschlichen. das ding heisst LDAP
es handelt sich um eine datenbank auf dem domainkontroller wo alle userdaten abgelegt werden. diese datenbank kann jeder domainuser einsehen, resp, auslesen. und genau dort möchte ich eine abfrage starten. aber eben leider funzt das nicht.
habe ein vb script welches genau macht was ich möchte aber im ecxel tut es nicht mehr.
kennst du dich mit vbs aus?
gruess marc

Anzeige
AW: LDAP Active Directory
23.10.2007 07:56:00
tino
Hallo,
habe schon mal ein bar vba und vb6 Programme geschrieben.
Kenne aber deine datenbank nicht, ist dass eine art textdatei oder eine webseite oder in welchem format liegt diese datenbank vor?
Gruss
Tino

AW: LDAP Active Directory
23.10.2007 08:02:58
Marc
hmmm das sieht mir stark nach sql aus.
schau dir mal das folgende vbs an. evtl findest du eine zeile die vba nicht verstehen kann.
ich glaube es liegt an der zeile
strSQL = "SELECT " & ad_field & " FROM 'LDAP://" & sADDomain & "' WHERE samaccountname = '" & sSearch & "'"
hier das script
_____________________________________________________
On Error Resume Next
Set oWSHShell = CreateObject("Wscript.Shell")
dom=inputbox("domaene")
sUser=inputbox("user")
sADDomain = dom
oUser=funcADUserLookup("distinguishedName", sUser)
mail=funcADUserLookup("mail", sUser)
if oUser="" then
msgbox sUser & " nicht gefunden!"
else
msgbox ouser & vbcrlf & mail & vbcrlf
end if
'--query active directory

Function funcADUserLookup(ad_field, sSearch)
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
End Function


Anzeige
AW: LDAP Active Directory
23.10.2007 08:34:19
Tino
Hallo,
mir ist aufgefallen
1. keinerlei Deklarierung vorhanden.
2. sADDomain wurde nicht mit an die Funktion übergeben
mit Option Explicit kannst du eine Deklarierung erzwingen!
Habe zwar mit SQL abfragen noch nichts gemacht, aber diese Sachen sind mir schon mal aufgefallen,
vielleicht bringt dich dass ja weiter.

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


Gruss Tino

Das Forum lebt von Rückmeldungen!


Anzeige
AW: LDAP Active Directory
23.10.2007 10:24:02
Marc
HAMMER STARK --es tut
hallo tino
das finde ich absolut genial, jetzt kann ich an meinem Projekt weiter programmieren. es funktioniert absolut genial.
ich habe noch ein weiters vb-script welches ich ins excel rinbringen muss, aber ich hoffe das klappt, mit deinen ergänzungen in diesem script.
ansonsten poste ich in diesen post rein und bitte wieder um so professionelle hilfe.
danke nochmals für die super schnelle hilfe..
gruess marc

AW: und wieder einer glücklich!
23.10.2007 10:35:14
Tino
Hallo,
na dass ist ja super, wieder einer glücklich.
Gruss Tino

Das Forum lebt von Rückmeldungen!


Anzeige

8 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige