Manchmal gibt es die Anforderung einen Exchange Server nicht auf dem herkömmlichen zu migrieren. Oft wird sich dann für eine PST-Migration, also der Export der Postfächer aus dem Quellsystem und der anschließende Import der Daten in die Zielpostfächer entschieden. Dieser Weg wird häufig bei Cross-Forrest Migrationen gewählt, gerade bei einer überschaubaren Anzahl von Postfächern lohnt allerdings der Einsatz von Spezialsoftware, wie zum Beispiel „Migration Manager for Exchange“ der Firma Dell, meist nicht.
Allerdings wird oft ein kleines Detail bei dieser Art der Migration vergessen: Wenn die Postfächer in einer neuen Gesamtstruktur erzeugt werden, wird ein neuer LegacyExchangeDN vergeben, besonders dann, wenn sich der Name der Gesamtstruktur ändert.
Das Attribut LegacyExchangeDN wird allerdings von Outlook für ein paar wichtige Dinge verwendet, das sind zum Beispiel Autovervollständigung von E-Mail Adressen und Zuordnung von Personen zu Terminen.
Hier mal ein kleinen Beispiel:
Ich habe im Outlook Cache einen Eintrag für „Mailbox1“
Mailbox1 verfügt über diesen LegacyExchangeDN:
/o=FrankysWeb/ou=Exchange Administrative Group (FYDIBOHF23SPDLT)/cn=Recipients/cn=ce3ee9150f424250bda67e2a6e062aea-Mailbox1
Sobald sich nun der LegacyExchangeDN ändert, weil das Postfach nun in einer neuen Gesamtstruktur liegt, zum Beispiel auf:
/o=FrankysWebNEU/ou=Exchange Administrative Group (FYDIBOHF23SPDLT)/cn=Recipients/cn=ce3ee9150f424250bda67e2a6e062aea-Mailbox1
Dann passiert folgendes:
Der Benutzer bekommt eine Unzustellbarkeitsnachricht mit folgendem Inhalt:
Fehler bei der Nachrichtenzustellung an folgende Empfänger oder Gruppen:
Mailbox1
Die eingegebene E-Mail-Adresse konnte nicht gefunden werden. Überprüfen Sie die E-Mail-Adresse des Empfängers, und versuchen Sie, die Nachricht erneut zu senden. Wenden Sie sich an den Helpdesk, falls das Problem weiterhin besteht.
Diagnoseinformationen für Administratoren:Generierender Server: EX1.frankysweb.local
IMCEAEX-_o=FrankysWeb_ou=Exchange+20Administrative+20Group+20+28FYDIBOHF23SPDLT+29_cn=Recipients_cn=ce3ee9150f424250bda67e2a6e062aea-Mailbox1@frankysweb.local
Remote Server returned ‚550 5.1.1 RESOLVER.ADR.ExRecipNotFound; not found‘
Hintergrund ist folgender: Outlook speichert nicht die E-Mail Adresse, sondern den LegacyExchangeDN. Welche Exchange oder Outlook Version eingesetzt wird, ist übrigens egal, das Verhalten ist überall gleich.
Um dieses Problem zu vermeiden gibt es eine einfache Lösung. Der alte originale LegacyExchangeDN muss als X500 Adresse an das entsprechende Postfach zugewiesen werden.
Wenn das Kind also schon in den Brunnen gefallen ist, dann lässt sich die X500 Adresse aus dem Unzustellbarkeitsbericht ermitteln, das funktioniert wie folgt:
- Replace any underscore character (_) with a slash character (/).
- Replace „+20“ with a blank space.
- Replace „+28“ with an opening parenthesis character.
- Replace „+29“ with a closing parenthesis character.
- Delete the „IMCEAEX-“ string.
- Delete the „@mgd.domain.com“ string.
- Add „X500:“ at the beginning.
In meinem Fall also:
X500:/o=FrankysWeb/ou=Exchange Administrative Group (FYDIBOHF23SPDLT)/cn=Recipients/cn=ce3ee9150f424250bda67e2a6e062aea-Mailbox1
Diese Adresse kann jetzt per Shell oder GUI zugewiesen werden:
Sobald die X500 Adresse hinzugefügt wurde, funktioniert auch der Mailversand an Adressen aus der Autovervollständigung wieder.
Wer eine Migration mit PST-Export/Import plant, kann sich das Leben allerdings direkt leichter machen:
Um die LegacyExchangeDNs aller Postfächer aus dem Quellsystem zu exportieren und auf dem Zielsystem als X500 Adresse wieder zu importieren, kann das folgende Script genutzt werden. Als Parameter müssen eine CSV-Datei und der Modus (Export/Import) angegeben werden. Das Script setzt gleiche Aliase für den Import voraus.
param ( [Parameter(Mandatory=$True)] [string]$CSVFile , [Parameter(Mandatory=$True)] [string]$FunctionLevel ) if ($FunctionLevel -notmatch "Import" -and $FunctionLevel -notmatch "Export") { write-host "Nur Import oder Export als Parameter gültig" exit 0 } if ($FunctionLevel -match "Export") { "SamAccountName;Alias;LegacyExchangeDN" | set-content $csvfile $mailboxlist = get-mailbox -resultsize unlimited foreach ($mailbox in $mailboxlist) { $samaccount = $mailbox.SamAccountName $legacydn = $mailbox.LegacyExchangeDN $alias = $mailbox.Alias "$samaccount;$Alias;$legacydn" | add-content "$csvfile" } } if ($FunctionLevel -match "Import") { $mailboxlist = import-csv $csvfile -delimiter ";" foreach ($mailbox in $mailboxlist) { $samaccount = $mailbox.SamAccountName $legacydn = $mailbox.LegacyExchangeDN $alias = $mailbox.Alias $ProxyAddresses = (Get-Mailbox $alias).EmailAddresses $x500 = "X500:" + "$legacydn" $x500 $x500 = [Microsoft.Exchange.Data.CustomProxyAddress]("$x500") $ProxyAddresses += $x500 Set-Mailbox $alias -EmailAddresses $ProxyAddresses } }
Wir haben auf unserem Exchange-Server sowohl eingehend als auch ausgehend diese Fehlermeldung bei „an sich“ gültigen E-Mail-Adressen. Der Servern, von dem wir vor vielen Jahren migriert haben ist natürlich nicht mehr erreichbar. Die Domain ist unverändert, aber jetzt hängt der Exchange in Office 365 und ist mit dem local AD synchronisiert.
Was kann / muss ich tun, um diese LegacyExchangeDN richtig zu konfigurieren? Momentan finde ich eine solche X500-Konfiguration weder im AD (unter „Erweitere Features“ im „Attribut Editor“) noch im O365-Exchange-Admin-Interface .
Danke, ihr habt mich mal wieder gerettet
Die Dokus von Microsoft sind nicht ganz vollständig. Möglicherweise enthält die IMCEAEX-Adresse der Fehlermeldung noch andere (nicht dokumentierte) +XX Werte, die decodiert werden müssen (Zum Beispiel die Zeichen „Klammer auf“ und „Klammer zu“). Die X500 Adresse muss frei von +XX-Werten sein. Es ist möglich die korrekte Adresse mittels pst Viewer anzeigen zu lassen. Dazu problematisches Postfach exportieren und einfach alte Mails, die vor dem Umzug geschrieben wurden mittels freeware analysieren. Ganz easy.
Moin!
Vielleicht kann ich mit dieser Info dem einen oder anderen noch helfen.
Bei mir hatte das Ganze anfangs nicht funktioniert. Wir verwenden Exchange 2016 – eventuell wurde hier etwas geändert..?
Ich habe den Eintrag über die GUI vorgenommen. Ich musste dafür eine kleine Anpassung vornehmen im Vergleich zu dem, was im Screenshot zu sehen ist. Außerdem habe ich eine Kleinigkeit übersehen.
1. Beim Eintragen des E-Mail-Adresstyps muss ein Punkt mit rein (das ist im Screenshot anders). Also: X.500 statt X500
2. Beim Eintragen der Adresse muss das „X500:“ am Anfang weggelassen werden. (Das verlinkte Skript z.B. generiert eine Adresse MIT diesem Präfix. Da auf jeden Fall darauf achten ihn beim Kopieren wegzulassen.)
Wenn ich beides beachte dann funktioniert es. Sobald der Punkt fehlt oder ich das Präfix mit eintrage, wird dieselbe Fehlermeldung ausgegeben wie vorher.
Hoffe ich konnte damit jemandem etwas Frust ersparen. ;)
Liebe Grüße
Thomas
Hallo Franky, wir haben das gleiche Problem bei einer PST Migration (—>Outlook 2016) von SBS2011 auf eine Hosted Exchange Lösung von ionos bekommen. Allerdings können wie die Lösung nicht verwenden, weil der Anbieter dem Kunden nur eine minimale Exchange Verwaltung zur Verfügung stellt. Genaugenommen kann man da nur ein Konto erstellen, Weiterleitung und Aliase einrichten. Gibt es grundsätzlich noch eine Möglichkeit am Client evtl. über das offline Adressbuch von Outlook, Registry
oder anderes das geradezu biegen?
Grüße Andi
Und nochmal ein dickes Danke!
Hallo Frank,
kurze Verständnisfrage:
Sprichst du über einen PST-Export aus dem Exchange heraus oder aus Outlook heraus?
Viele Grüße
Christian
Hallo, gerade gefunden und erfolgreich eingesetzt. Danke für diesen Artikel !!
Hallo, habe das gleiche Problem von SBS2008 auf Exchange2019; muß man dort dann vor der E-Mail Adresse die X500: noch vorschreiben oder nur als E-Mail Adress-Typ?
Nein, nicht mehr. Das ist oben im Beispiel etwas verwirrend.
Habe das im e-Mail Postfach vom Exchange 2019 in der administrativen Konsole eingetragen:
/O=FIRST ORGANIZATION_OU=EXCHANGE ADMINISTRATIVE GROUP (FYDIBOHF23SPDLT)/CN=RECIPIENTS/CN=Test-User
Trotzdem erhalte ich von Benutzern eine Fehlermeldung. Muß ich davor jetzt noch in der administrativen Konsole „X500:“ schreiben?
mfg.
Hartmut
Hallo Franky,
hab’s gemacht wie beschrieben und muss sagen funktioniert, bis auf eine E-Mail Adresse.
Bei dieser erhalte ich nach wie vor den gleichen Fehler.
Hast Du ne Idee an was das liegen könnte?
Dank Dir für die Antwort!
Hallo Martin,
vielleicht hilft dir dieses kleine Script etwas weiter?
https://www.frankysweb.de/quick-dirty-imceaex-strings-in-x500-konvertieren/
Gruß, Frank
Danke hat perfekt geholfen!
Moin!
Szenario: SBS 2003 Umzug auf Srv. 2012 R2 mit Exchange 2016, Name der Domain bleibt gleich, Exchange Server würde dann wenns hilft auch den gleichen Namen wie der alte SBS 2003 bekommen, die Postfächer würden von den Clients via PST Export gesichert und später nach anmeldung am neuen Server wieder am Client importiert.
Besteht dieses Problem auch wenn Domain Name und Exchange Server Name gleich bleiben?
Kann man es nicht irgend wie im Vorfeld vermeiden ohne extra Adressen als X500 anzulegen?
Gruß Ingo
Bei mir lag der Fehler daran, dass ich in der AD eine Email Adresse bei dem Benutzer eingetragen hatte, die gar nicht intern lag.
Hallo Franky,
Es wurden mittels shell Externe Kontakte erstellt, das führte wiederum dazu dass die Kontaktobjekte in AD auftauchten.
Da es nicht mehr gewünscht war externe Kontakte im Globalen Adressbuch zu sehen da diese dort für den Anwender nicht editierbar sind wurden die Kontaktobjekte aus AD gelöscht.
Allerdings kommt es beim senden einer Mail zu diesen externen Adressen immerwieder zu Fehlern da exchange anscheinen nicht mitbekommen hat dass die Kontakte nicht mehr existieren und sucht nach internen Postfächern anstatt an eine externe Mailadresse zu senden.
Kann ich Exchange dazu bringen sich neu zu initalisieren oä?
Mfg
Michael
Hallo, haben das gleiche Problem, alter Server SBS 2007, neue Domäne aufgebaut und Exchange 2016 eingerichtet. PST importiert und nun bekommen wir diese Fehlermeldungen. Allerdings nützt der X500 Eintrag auch nichts, bekommen trotzdem Fehlermeldungen. Versand über Extern geht, genauso über OWA. Nur über Outlock geht es nicht…
Weiß hier jemand zu helfen?
Hallo,
gibt es die Möglichkeit die x500 Adresse an alle User per Richtlinie zu verteilen?
Oder solt ich das als ps1 script speichern? :(
Hmm, das Script funzt bei mir leider nicht :( hab es als vbs gespeichert, aber er sagt schon das in der 2. zeile, das 1. zeichen eine anweisung erwartet. Ich starte es über cmd mit dem befehl: cscript x500.vbs x500.csv Export.
klappt aber nicht. Quellserver ist ein SBS2003, zielserver ist ein Exchange 2010 auf nem Server2012R2. Wo ist da der fehler? *confused*
Das wundert mich nicht.
Danke, exakt das gleiche Problem gehabt nach einer Migration von Exchange 2003 auf 2013 mit PST Export. Lösung hat geholfen.
Du bist echt der Beste. Es gibt keine Seite, die für Windows Server / Exchange so nützlich ist :-)