AD-Attribut Mailadressen auslesen

Ich bin ein großer Fan von PowerShell. Die Befehle gerade für das Active Directory bzw. Exchange erleichtern die Arbeit doch sehr. Allerdings findet man sich manchmal in Situationen wieder, in denen man etwas durchführen möchte ohne dass einem die PowerShell zur Verfügung steht. Dazu gehört das Auslesen von AD-Attributen in älteren Umgebungen ohne PowerShell.

Konkret hatte ich das Problem in einer Exchange 2003 Umgebung mit nur einem Domänenkontroller und der lief unter Windows 2000(!). Fragt lieber nicht…

Ziel war ein Umzug der Postfächer in ein neues Active Directory mit Exchange 2016. Aufgrund des Windows 2000 DCs (und dem Nichtvorhandensein von 3rd Party Tools) musste ein Teil der Arbeiten manuell gemacht werden. Zumindest für die Anlage der Benutzer konnte ich aber das PowerShell-Skript „Prepare-MoveRequest“ benutzen.

Nun wollte ich aber gerne überprüfen, ob alle SMTP-Adressen der Benutzer vollständig und korrekt übertragen wurden. Auf dem Zielsystem war das dank PowerShell ja kein Problem; nur die Option gab es in der Quellumgebung nicht. Hierzu griff ich dort zuerst auf CSVDE zurück. Das führte aber zu einem kleinen Problem…

Hierzu muss man wissen, dass Benutzer mehrere Mailadressen haben können. Fragt man nur das Attribut „mail“ ab, bekommt man höchstens die Adresse, die für ausgehende Mail eingetragen wird.

csvde -r "(mail=*)" -d "dc=contoso,dc=com" -l mail -f "C:\Temp\gal.csv"

Was man eigentlich abfragen will ist das Attribut „proxyAddresses“. Dummerweise enthielt dieses Attribut aber, neben den SMTP-Adressen, in meinem Fall auch noch X400- und X500-Adressen. Ich habe dann innerhalb von Excel versucht, diese Adressen irgendwie beim Import der CSV-Datei abzuspalten; aber dazu ist mein Excel Kung Fu wohl zu schwach.

Eine Suche im Internet brachte mich dann auf das Tool „ADFIND“[1],[2]. Leider entsprach das Ergebnis noch nicht meinen Wünschen. Aber nach ein bisschen Kopfkratzen kam ich dann auf

C:\System\AdFind.exe -nolabel -b OU=Desktop_User,DC=contoso,DC=com proxyAddresses

| find /I "smtp" > smtp-addresses.txt

(alles in einer Zeile)

Die Datei enthielt dann zwar eine Adresse pro Zeile; aber da es sich nur um 80 Mailboxen handelte, reichte das Ergebnis vollkommen aus.

Vielleicht hilft das ja jemand weiter.

[1] https://serverfault.com/questions/207574/how-to-export-all-e-mail-addresses-from-exchange-2003

[2] http://www.joeware.net/freetools/tools/adfind/index.htm

 

 

Leave a reply

Your email address will not be published.

You may use these HTML tags and attributes:

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>