Microsoft Excel

Herbers Excel/VBA-Archiv

Active Directory Service (ADS) per VBA auslesen | Herbers Excel-Forum


Betrifft: Active Directory Service (ADS) per VBA auslesen von: Armin
Geschrieben am: 14.01.2010 10:05:43

Hallo,

ich bin auf der Suche einer Möglichkeit, per VBA die Informationen aus dem Active Directory Service (ADS) für den angemeldeten User auszulesen.

So befinden sich in der ADS bspw. Tel-Nr., E-Mail-Adresse etc. für den angemeldeten Benutzer.

Gibt es eine Möglichkeit, diese Informationen auszulesen umd diese in eine Excel-Zelle einzutragen?

Vielen Dank für euere Tipps.

Schöne Grüße

Armin

  

Betrifft: AW: Active Directory Service (ADS) per VBA auslesen von: JoWE
Geschrieben am: 14.01.2010 10:47:43

Hallo Armin,
ich lasse diese Aufgabe von einem VB-Script erledigen und das Ergebnis in Excel ausgeben:

'Dies ist der Inhalt der VBS-Datei "Auswerung.vbs", diese ist mit Doppelklick ausführbar
'und öffnet schließlich die Excel-Arbeitsmappe
'überall wo nnn steht mußt Du natürlich Deine spezifischen Bezeichnungen eintragen

objConnection.Provider = "ADsDSOObject"
objConnection.Open "Active Directory Provider"
Set objCommand.ActiveConnection = objConnection
objCommand.Properties("Page Size") = 1000
objCommand.Properties("Searchscope") = ADS_SCOPE_SUBTREE
objCommand.CommandText = "SELECT sn,givenName,department,telephoneNumber,physicalDeliveryOfficeName,"
objCommand.CommandText = objCommand.CommandText & "otherTelephone,facsimileTelephoneNumber,streetAddress,l,"
objCommand.CommandText = objCommand.CommandText & "pager,samaccountname FROM 'LDAP://ou=Benutzer,ou=nn,"
objCommand.CommandText = objCommand.CommandText & "ou=nnnnn,DC=nnn,DC=nnn,DC=nn' "
objCommand.CommandText = objCommand.CommandText & "WHERE objectCategory='user' and samaccountname='nnn*' "
Set objRecordSet = objCommand.Execute
objRecordSet.MoveFirst
set excap=createobject("Excel.Application")
excap.Visible=true
excap.Workbooks.add
excap.cells(1,1).value="Deine Überschrift"
i=3
excap.cells(2,1).value="Name"
excap.cells(2,2).value="Vorname"
excap.cells(2,3).value="Abteilung"
excap.cells(2,4).value="Telefon"
excap.cells(2,5).value="Raum"
excap.cells(2,6).value="ext. Rufnummer"
excap.cells(2,7).value="Faxnummer"
excap.cells(2,8).value="Standort"
excap.cells(2,9).value="PDF"
excap.cells(2,10).value="LoginId"
Do Until objRecordSet.EOF
excap.cells(i,1).value="'" & objRecordSet.Fields("sn").Value
excap.cells(i,2).value="'" & objRecordSet.Fields("givenName").Value
excap.cells(i,3).value="'" & objRecordSet.Fields("department").value
excap.cells(i,4).value="'" & objRecordSet.Fields("telephoneNumber").value
excap.cells(i,5).value="'" & objRecordSet.fields("physicalDeliveryOfficeName").value
excap.cells(i,6).value="'" & join(objRecordSet.Fields("otherTelephone"),",")
excap.cells(i,7).value="'" & objRecordSet.Fields("facsimileTelephoneNumber").value
excap.cells(i,8).value="'" & objRecordSet.Fields("streetAddress").value & ", " & objRecordSet.Fields("l").value
excap.cells(i,9).value="'" & objRecordSet.Fields("pager").value
excap.cells(i,10).value="'" & objRecordSet.Fields("samaccountname").value
i=i+1
objRecordSet.MoveNext
Loop
excap.Visible=true

Wenn's hilft ist's gut
Gruß
Jochen


  

Betrifft: Datentyp für objConnection und objCommand ? von: NoNet
Geschrieben am: 14.01.2010 11:16:21

Hallo Jochen,

interessanter Ansatz ! Bei der Ausführung des VBS-Codes erhalte ich jedoch bereits in der Zeile objConnection.Provider = "ADsDSOObject" einen Fehler (Objekt erforderlich : 'objConnection')
Welchen Datentyp besitzen denn die Objektvariablen objConnection und objCommand ?
Welche DLLs müssen dazu registriert sein bzw. bei Umsetzung in Excel VBA : Welche Verweise müssen dazu gesetzt sein ?

Ich arbeite hier mit einem LDAP-Browser, aus dem ich die Server-Einträge nachvollziehen kann.

Gruß, NoNet


  

Betrifft: AW: Datentyp für objConnection und objCommand ? von: JoWE
Geschrieben am: 14.01.2010 13:19:34

Hallo NoNet,

siehe http://msdn.microsoft.com/en-us/library/aa746471(VS.85).aspx
Welche Datentypen erforderlich sind, ist mir auch noch nicht klar.
Habe allerdings das VB-Script nicht in VBA umgesetzt.
Der Gedanke, genau dies zu tun gefällt mir, werde es mal versuchen.
Sobald ich dann nähreres berichten kann melde ich mich.

Gruß
Jochen


  

Betrifft: AW: Datentyp für objConnection und objCommand ? von: Armin
Geschrieben am: 14.01.2010 13:49:54

Hallo Jochen,

super, hört sich gut an. Würde mich freuen, von Dir zu hören.

Viele Grüße und Dankeschön

Armin


  

Betrifft: AW: Active Directory Service (ADS) per VBA auslesen von: JoWE
Geschrieben am: 14.01.2010 15:02:23


Halllo nochmal,

der Verweis 'Active DS Type Library" ist zu aktivieren.
Danach steht dem Zugriff auf das AD nichts mehr im Wege.
objConnection und objCommand sind als Object zu DIMensionieren

Gruß
Jochen


Beiträge aus den Excel-Beispielen zum Thema "Active Directory Service (ADS) per VBA auslesen"