Jump to content

Name/Vorname und Telefonnummer aus ADS auslesen


Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Empfohlene Beiträge

Hallo...

 

So hat euer Tag auch so angefangen wie meiner, nämlich grausam :)

naja...

 

folgendes Problem:

 

Ich muss aus dem ADS Name, Vorname und die Telefonnummer auslesen.

Diese muss ich dann in einer Excelliste zusammenstellen. Ich habe einige möglichkeiten gefunden, jedoch viel zu viel Müll.

 

z.B.

CSVDE -f "C:\Benutzer.txt" -r (objectclass=user) -l sAMAccountName,name -d "dc=mi-intra,dc=net"

 

Mit diesem Befehl bekomme ich zwar nur die Benutzernamen aber auch sehr viele andere Information die ich nicht brauche.

 

nun, hat jemand ein gutes (deutliches) beispiel? Bin neu in der Szene, daher sollte es etwas ausführlicher sein :)

 

vielen Dank für die Bemühungen.

Link zu diesem Kommentar

Servus,

 

versuche es mal mit LDIFDE mit dem folgenden Befehl (kann es gerade nicht testen):

ACHTUNG: Alles in einer Zeile!

 

LDIFDE -f Export.ldf -s <DC-Name> -d "dc=<Domäne>,dc=<TLD>" -p subtree -r "(objectCategory=user)"

-l "sAMAccountname,givenname,sn,telephoneNumber"

 

 

Die einzelnen Feldnamen/Atrribute kannst du von hier entnehmen bzw. deinen Export erweitern.

 

User Object User Interface Mapping (Windows)

Link zu diesem Kommentar

bei mir bringter fehlermeldung, das System kann die angegebene Datei nicht finden.

 

habe folgendes gemacht:

 

LDIFDE -f Export.ldf -s <DomainCserver> -d "dc=<test>,dc=<com>" -p subtree -r "(objectCategory=user)"

-l "sAMAccountname,givenname,sn,telephoneNumber"

 

habs dann als bat abgespeichert und ausgeführt... und bekomme ne fehlermeldung? komisch...

Link zu diesem Kommentar

Dann machst du irgendwo einen Tipp-Fehler.

Ich habe es soeben bei mir versucht und es funktioniert.

 

Nochmals mit Beispiel-Namen:

 

LDIFDE -f Export.ldf -s Domcon01 -d "dc=contoso,dc=com" -p subtree -r "(objectCategory=user)"

-l "sAMAccountname,givenname,sn,telephoneNumber"

 

ACHTUNG: Die spitzen Klammern bei den Namen musst du schon weglassen.

Link zu diesem Kommentar

Das changetype ist systembedingt und wird standardmäßig hinzugefügt was man imho nicht abstellen kann.

Wie du das (mit Verbindung) in Excel formatieren musst, zeigt dir dieser Artikel:

Importdateien für CSVDE.exe einfach generieren - faq-o-matic.net

 

Das ganze lässt sich natürlich auch mit CSVDE lösen, bei ähnlicher Vorgehensweise, nur der Filter mit LDIFDE ist mir aber in Gedanken.

Du müsstest einwenig mit der Hilfe und den Parametern hantieren, dann funktioniert das auch mit CSVDE.

 

Hier noch weitere hilfreiche Artikel:

Yusuf`s Directory - Blog - LDIFDE - LDAP Data Interchange Format Data Exchange

LDIF-Generator für den Import in Active Directory - faq-o-matic.net

csvde zum Import und Export von AD-Daten nutzen - faq-o-matic.net

ldifde.exe zur AD-Bearbeitung - faq-o-matic.net

Erzeugen von ldifde-Templates aus Excel mit GNU Awk - faq-o-matic.net

Link zu diesem Kommentar

@edocom

 

ADO (ActiveX Data Objects) verwendet den ADSI OLE DB-Provider, um Informationen aus Active Directory zu lesen. Die Einträge des Ergebnissatzes wird dann in eine Excel-Arbeitsmappe gespeichert.

 

Option Explicit
Const SUCHFILTER = "(objectCategory=user)"
Const ATTRIBUTE = "sAMAccountName, sn, givenName, telephoneNumber"
Const SUCHBEREICH = "subtree"
Dim Arbeitsmappe, DBVerbindung, DBAbfrage, Ergebnissatz, Excel, Spalte, Suchbasis

Set DBVerbindung = CreateObject("ADODB.Connection")
With DBVerbindung
 .Provider = "ADsDSOObject"
'  .Properties("User ID") = ""
'  .Properties("Password") = ""
 .Open "Active Directory Provider"
End With

Set DBAbfrage = CreateObject("ADODB.Command")
DBAbfrage.ActiveConnection = DBVerbindung
Suchbasis = "<LDAP://" & GetObject("LDAP://rootDSE").Get("defaultNamingContext") & ">"

With DBAbfrage
 .CommandText = Suchbasis & ";" & SUCHFILTER & ";" & ATTRIBUTE & ";" & SUCHBEREICH
 .Properties("Page Size") = 1000
 .Properties("Timeout") = 30
 .Properties("Cache Results") = False
End With

Set Excel = CreateObject("Excel.Application")
Excel.Visible = True
Set Arbeitsmappe = Excel.Workbooks.Add()
Excel.Cells(1, 1).Value = "Anmeldename"
Excel.Cells(1, 2).Value = "Name"
Excel.Cells(1, 3).Value = "Vorname"
Excel.Cells(1, 4).Value = "Telefon-Nr"

Set Ergebnissatz = DBAbfrage.Execute
Ergebnissatz.MoveFirst
Spalte = 1
While Not Ergebnissatz.EOF
 Spalte = Spalte + 1
 Excel.Cells(Spalte, 1).Value = Ergebnissatz.Fields("sAMAccountName").Value
 Excel.Cells(Spalte, 2).Value = Ergebnissatz.Fields("sn").Value
 Excel.Cells(Spalte, 3).Value = Ergebnissatz.Fields("givenName").Value
 Excel.Cells(Spalte, 4).Value = Ergebnissatz.Fields("telephoneNumber").Value
 Ergebnissatz.MoveNext
WEnd
DBVerbindung.Close
Arbeitsmappe.SaveAs("c:\Active Directory Info.xls")
Excel.Quit

Link zu diesem Kommentar
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Schreibe einen Kommentar

Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor-Fenster leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...