Die Herausforderung durch einen massiven Zeitfresser
Für ein wichtiges Infrastrukturprojekt zur Konsolidierung des E-Mail-Systems bei einem großen Auktionshaus stand eine gewaltige Menge an repetitiver Arbeit an. Im Zentrum des Projekts stand das Ziel, die dortigen E-Mail-Strukturen drastisch zu vereinfachen, da 81 klassische E-Mail-Verteilergruppen in “Shared Mailboxes” umgewandelt werden mussten. Das schafft anstelle einer reinen Weiterleitungsfunktion eine echte und zentrale sowie durchsuchbare Ablage für Teams.
Das massive Problem liegt darin, dass Microsoft Exchange für diese Konvertierung von Haus aus keinen direkten und automatisierten Migrationspfad bietet. Der herkömmliche und manuelle Weg wäre ein reiner Albtraum gewesen. Jeder einzelne Verteiler müsste analysiert, die bisherigen User dokumentiert und gelöscht sowie die Mailbox neu angelegt werden, bevor anschließend alle Nutzerberechtigungen wieder exakt hergestellt werden.
Bei 81 Gruppen bedeutete dies mehrere Manntage stupider und extrem fehleranfälliger Klickarbeit im Admin Center.
Die Lösung durch intelligentes PowerShell Skripting
Um diese Aufgabe sauber sowie sicher und skalierbar zu bewältigen, habe ich ein spezialisiertes PowerShell Skript entwickelt, das die komplette Migration vollautomatisch abwickelt.
Die Stolperfalle durch den LegacyExchangeDN
Die größte technische Herausforderung bei einer solchen Migration liegt tief unter der Oberfläche, nämlich beim sogenannten LegacyExchangeDN. Wird in Exchange eine E-Mail-Adresse gelöscht und auf einem komplett anderen Objekttyp wie etwa einer Shared Mailbox wieder neu angelegt, ändert sich im Hintergrund zwingend dieser unsichtbare Identifikator.
Warum ist das schlimm? Das liegt daran, dass die lokalen Outlook Clients der Mitarbeiter extrem hartnäckig arbeiten und oft die alten Adressen über diesen Identifikator im Zwischenspeicher ihrer Auto Vervollständigung speichern. Wäre die Migration einfach stur durchgezogen worden, hätten interne E-Mails, die über den Cache an die neue Shared Mailbox verschickt werden, mit einem unzustellbaren Error geendet. Ein klassisches Desaster, bei dem morgen das Telefon der IT heißläuft.
Mein Skript beugt vor
Mein PowerShell Skript umschifft dieses kritische Kommunikationsproblem höchst elegant.
Backup des Identifikators Bevor überhaupt etwas passiert, liest das Skript den alten LegacyExchangeDN des Verteilers aus und speichert ihn in Variablen zwischen.
Die Konvertierung Die Verteilerliste wird abgebaut und stattdessen die vollwertige Shared Mailbox erzeugt.
Die Wiederherstellung Nun fügt das Skript genau diesen gesicherten alten Wert als sogenannte X500 Adresse der neuen Mailbox hinzu. Outlook verknüpft so die alte Adresse nahtlos mit dem neuen Ziel.
Die Berechtigung Am Ende stellt das Skript automatisch alle benötigten und dokumentierten Berechtigungen wie etwa FullAccess und Send As anhand der vorherigen Mitgliederliste exakt wieder her.
Fazit und Ergebnis
Das fertige Skript erledigte den Massen Rollout am Ende zu exakt 100 Prozent zuverlässig. Der ursprünglich eingeplante Arbeitsaufwand von mehreren anstrengenden und fehleranfälligen Tagen voller Copy Paste Arbeit wurde auf wenige Stunden entspannte Skriptlaufzeit geschrumpft.
Der größte Gewinn dieses Projekts liegt aber gar nicht in der eingesparten Zeit, sondern in der enormen Ausfallsicherheit. Durch das saubere Handling des LegacyExchangeDN fand der komplette Umzug für die Endnutzer völlig fehlerfrei und unsichtbar statt. Niemand am Montag im Büro bekam im E-Mail-Verkehr auch nur das geringste Problem. Beachtliche Effizienzgewinne trafen hier auf maximale Ausfallsicherheit.
