Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

gelöst Active Directory - alle EMailadressen in Datei ausgeben

Mitglied: Breede

Breede (Level 1) - Jetzt verbinden

30.11.2007, aktualisiert 13.12.2007, 7963 Aufrufe, 2 Kommentare

Hi,

aufgrund der Komplexität habe ich die Umsetzung angepasst.

Es geht nun darum alle Mailadressen der Domäne, also von Benutzern, Gruppen etc. auszulesen und in eine Datei zu schreiben (wenn möglich nur bis zum @ Zeichen).

Das auslesen des Namens und der DN funktioniert auch, Problem hier ist nur das, sobald ich bei "Do Until" "Mail" ausgeben möchte (also auch die Mailadresse) sagt er:

Error: Type mismatch: 'WriteLine'
Code: 800A000D
Sorce: Microsoft VBScript runtime error

Hier der Code:

Const ADS_SCOPE_SUBTREE = 5
Dim fso, file
Set fso = CreateObject("Scripting.FileSystemObject")
Set file = fso.CreateTextFile("n:\ausgabe.txt", True)

Set objConnection = CreateObject("ADODB.Connection")
Set objCommand = CreateObject("ADODB.Command")
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 distinguishedname,mail,name FROM 'LDAP://DC=www,DC=domain,DC=de'WHERE objectCategory='user'" & _
"OR objectCategory='group'"

Set objRecordSet = objCommand.Execute

Do Until objRecordSet.EOF
file.WriteLine(objRecordSet.Fields("distinguishedname"))
file.WriteLine(objRecordSet.Fields("mail"))
file.WriteLine(objRecordSet.Fields("name"))
objRecordSet.MoveNext
Loop
Mitglied: 51705
30.11.2007 um 20:33 Uhr
Hallo Breede,

ich habe leider nur den Tip, die dem jeweiligen System bekannten SMTP-Adressen auszulesen, vielleicht hilft es trotzdem:

http://www.msexchangefaq.de/code/smtplist.htm

Grüße, Steffen
Bitte warten ..
Mitglied: Breede
13.12.2007 um 11:24 Uhr
Hier die Lösung:

Noch etwas zur Erklärung.

Erst hole ich alle Attribute aus dem LDAP die eine Mail Adresse enthalten können.

Mailadresse : mail
Weitere Mailadressen: proxyAddresses
Mailbox: othermailbox

Diese gebe ich dann in eine Datei aus, da aber viele Objekte die eine Mail Adresse haben könnten keine haben, entstehen viele Leerzeilen. Diese werden mit der Prozedur "Leerzeilen" entfernt.

Um das ganze lesbarer zu machen, habe ich zusätzlich alles ab dem @ mit dem Replace entfernt.

Nun liegen alle Mailadressen der Domäne, alphabetisch sortiert und ohne Leerzeilen in einer Datei.

01.
''''' Konstanten ''''' 
02.
 
03.
Const ADS_SCOPE_SUBTREE = 5 
04.
 
05.
''''' Variablen ''''' 
06.
 
07.
Dim fso 
08.
Dim strRecordsetInhalt 
09.
Dim File_SAC_Input 
10.
Dim File_SAC 
11.
 
12.
Set fso             = CreateObject("Scripting.FileSystemObject") 
13.
Set File_SAC_Input  = fso.CreateTextFile("N:\SAC_Input.txt", True) 
14.
Set File_SAC        = fso.CreateTextFile("N:\SAC.txt", True) 
15.
 
16.
''''' Verbindung zum Active Directory ''''' 
17.
 
18.
Set objConnection               = CreateObject("ADODB.Connection") 
19.
Set objCommand                  = CreateObject("ADODB.Command") 
20.
objConnection.Provider          = "ADsDSOObject" 
21.
objConnection.Open("Active Directory Provider") 
22.
 
23.
Set objCommand.ActiveConnection      = objConnection 
24.
objCommand.Properties("Page Size")   = 1000 
25.
objCommand.Properties("Searchscope") = ADS_SCOPE_SUBTREE 
26.
 
27.
''''' Abfrage und Ausgabe per SQL über LDAP ''''' 
28.
 
29.
objCommand.CommandText =	" SELECT mail, othermailbox, proxyAddresses " & _ 
30.
			" FROM 'LDAP://DC=www,DC=xxx,DC=de' " & _ 
31.
			" WHERE mail <> '@' " & _ 
32.
			" ORDER BY mail " 
33.
' Ohne WHERE konnte kein ORDER BY angesprochen werden 
34.
 
35.
Set objRecordSet = objCommand.Execute 
36.
 
37.
Do Until objRecordSet.EOF 
38.
	strRecordsetInhalt = Trim(objRecordSet.GetString(2, , VbCrLf,VbCrLf,"")) 
39.
	strRecordsetInhalt = UCase(strRecordsetInhalt) 
40.
	strRecordsetInhalt = Replace(strRecordsetInhalt,"@WWW.XXX.DE","") 
41.
	File_SAC_Input.WriteLine(strRecordsetInhalt) 
42.
	If not objRecordSet.EOF Or objRecordSet.BOF Then 
43.
		objRecordSet.MoveNext  
44.
		' MoveNext bei objRecordSet.EOF verursacht einen Fehler 
45.
	End If 
46.
Loop 
47.
 
48.
File_SAC_Input.Close 
49.
Call Leerzeichen 
50.
 
51.
''''' Sub Routinen ''''' 
52.
 
53.
Sub Leerzeichen 
54.
 
55.
''''' Alle Leerzeilen werden entfernt 
56.
''''' 
57.
''''' Quelle mit Leerzeilen: "Open_SAC_Input" 
58.
''''' Ziel ohne Leerzeilen : "File_SAC" 
59.
 
60.
''''' Variablen ''''' 
61.
 
62.
Dim sLine 
63.
 
64.
Set Open_SAC_Input  = fso.OpenTextFile("N:\SAC_Input.txt", 1, True) 
65.
 
66.
''''' Entfernen der Leerzeilen ''''' 
67.
 
68.
Do Until Open_SAC_Input.AtEndOfStream 
69.
	sLine = Open_SAC_Input.ReadLine 
70.
	If Trim(sLine) <> "" Then 
71.
		File_SAC.WriteLine(sLine) 
72.
	End If 
73.
Loop 
74.
File_SAC.Close 
75.
 
76.
End Sub
Bitte warten ..
Ähnliche Inhalte
Windows Userverwaltung

Mit Powershell mehrere Active Directory Gruppen auslesen und die Gruppenmember in Datei ausgeben

gelöst Frage von RMW-HomeWindows Userverwaltung1 Kommentar

Servus, ich fummele gerade an einer Aufgabe: 1. Finde alle Gruppen einer Active Directory Domäne welche einen bestimmten Namensbestandteil ...

Batch & Shell

Mitgliedschaft eines Users in Active-Directory-Gruppen ausgeben und exportieren zu einer .csv

gelöst Frage von ArseneBatch & Shell3 Kommentare

Guten Tag an alle, ich möchte gern alle Users von Active Directory auslesen. Bei jede User soll die dazugehörige ...

Windows Server

Active Directory Vertrauensstellung

Frage von ukulele-7Windows Server11 Kommentare

Ich muss sagen das ist meine erste Vertrauensstellung. Ich habe sie in unserer alten AD ads.domain.local Windows 2003 und ...

Windows Server

Active Directory - Umlaute ersetzen

gelöst Frage von duschgasWindows Server5 Kommentare

Hallo liebe Community, Ich besitze ein AD, das historisch gewachsen ist. Unter anderem enthält es Umlaute wie Ä Ü ...

Neue Wissensbeiträge
Ausbildung

Linux-Ausstieg in Niedersachsen - Windows statt Bugfix

Information von StefanKittel vor 42 MinutenAusbildung

Sind ja nur Steuergelder

Microsoft

Neuigkeiten zu Server und Office 365 was läuft mit was und was nicht

Tipp von AlFalcone vor 1 TagMicrosoft4 Kommentare

Da diese Infos scheinbar unerwünscht sind, habe ich diese wider gelöscht.

Speicherkarten

Neuer Speicherkartentyp - zunächst nur für Huawei-Smartphones (künftig auch für Notebooks u. Tablets?)

Tipp von VGem-e vor 1 TagSpeicherkarten1 Kommentar

Servus, als ob das "Chaos" i.S. Speicherkarten noch nicht groß genug wäre?! Evtl. kommt dieser neue Kartentyp bald auch ...

Sicherheit

Diverse D-Link-Router durch drei Schwachstellen kompromittierbar

Information von kgborn vor 2 TagenSicherheit

Hat jemand D-Link-Router in Verwendung? Einige Modelle sind sicherheitstechnisch offen wie ein Scheunentor. Äußerst unschöne Sache, aber nichts neues ...

Heiß diskutierte Inhalte
Off Topic
SysAdmin im öffentlichen Dienst - jemand Erfahrungen?
Frage von JohnDorianOff Topic21 Kommentare

Hallo zusammen, hat jemand Erfahrung wie es so ist als SysAdmin im öffentlichen Dienst (Landkreis) im Südwesten der Republik ...

TK-Netze & Geräte
Low budget TK-Anlage für KMU
Frage von HeinklugTK-Netze & Geräte16 Kommentare

Hallo Admins, ich bin auf der Suche nach eine kostengünstigen Telefonanlage für mein kleines Büro mit 4-5 Mitarbeitern. Dabei ...

SAN, NAS, DAS
Nas mit USB und LAN gleichzeitig zugreifen
gelöst Frage von MarkBeakerSAN, NAS, DAS16 Kommentare

Hallo zusammen, ich suche eine Art NAS, womit ich via LAN und USB zugreifen kann. Folgender Aufbau ist gedacht: ...

DSL, VDSL
PPPOE Einwahl über Sophos UTM und FritzBox per PPPOE Passthrough
gelöst Frage von Leo-leDSL, VDSL16 Kommentare

Hallo zusammen, vielleicht habt Ihr noch eine Idee?? Ich besitze einen 1u1 Anschluss und möchte meine UTM ASG 110 ...