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, 7991 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
Exchange Server

Exchange 2013 Activ-Sync und Outlook-Anywhere absichern bei KMU

Frage von StefanKittelExchange Server13 Kommentare

Hallo, gibt es eigentlich einen Weg um Active-Sync, OMA und OWA für KMUs bezahlbar abzusichern. Eigentlich ist es nicht ...

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

Administratorkonzept Active Directory

Frage von redhorseWindows Server13 Kommentare

Guten Morgen, wir möchte unser Administratorkonzept überarbeiten und stoßen auf einige Probleme, für die ich noch keine praktikable Lösung ...

Windows Server

Active Directory-Verwaltungsgatewaydienst

Frage von makaroniWindows Server2 Kommentare

Hallo zusammen, ich versuche von einem separaten Server von einem anderen Windows Server 2003 Server mir entsprechende User des ...

Neue Wissensbeiträge
iOS
WatchChat für Whatsapp
Tipp von Criemo vor 1 TagiOS3 Kommentare

Ziemlich coole App für WhatsApp User in Verbindung mit der Apple Watch. Gibts für iOS sowohl als auch für ...

iOS
IOS hat nen Cursor !!!
Tipp von Criemo vor 1 TagiOS5 Kommentare

Nette Funktion im iOS. iPhone-Mauszeiger aktivieren „Nichts ist nerviger, als bei einem Tippfehler zu versuchen, den iOS-Cursor an die ...

Off Topic
Avengers 4: Endgame - Erster Trailer
Information von Frank vor 3 TagenOff Topic2 Kommentare

Ich weiß es ist Off Topic, aber ich freue mich auf diesen Film und vielleicht geht es anderen hier ...

Webbrowser
Microsoft bestätigt Edge mit Chromium-Kern
Information von Frank vor 4 TagenWebbrowser5 Kommentare

Microsoft hat nun in seinem Blog bestätigt, dass die nächste Edge Version kein EdgeHTML mehr für die Darstellung benutzen ...

Heiß diskutierte Inhalte
Windows Netzwerk
Kerio. Kann keine Mails empfangen aber senden. Wer ist schuld. Kerio oder Windows domäne?
gelöst Frage von frosch2Windows Netzwerk22 Kommentare

Hallo, es existiert ein Problem bei uns mit dem mailen. Alle bestehenden Nutzer können mailen. Raus wie rein. Neuen ...

Hosting & Housing
VMware VM mit über 1TB RAM für S4HANA
Frage von Leo-leHosting & Housing20 Kommentare

Hallo zusammen, wer hat Erfahrng und kann mir einen Tipp zum sizing von S4HANA Systemen geben? Wir möchten, zunächst ...

Exchange Server
Exchange Server 2010: Keine Eingehenden E-MAils
gelöst Frage von gabeBUExchange Server17 Kommentare

Hallo Zusammen Ich habe das kurzen auf dem Exchange 2010 Server das Problem, dass ich keine externen E-Mails mehr ...

Virtualisierung
Gebrauchte Server Hardware als Virtualisierungs-"Spielwiese"?
Frage von NixVerstehenVirtualisierung15 Kommentare

Einen wunderschönen guten Morgen zusammen, ich möchte mich gerne etwas tiefer mit dem Thema Virtualisierung beschäftigen und dazu ein ...