Tags: Exchange, Microsoft 365, Migration
Beim Umstieg von einer on-Premise-Umgebung in die Cloud reicht es meist nicht, Benutzer und Gruppen zu migrieren. Denn nach wie vor nutzen viele Organisationen öffentliche Ordner auf ihrem lokalen Exchange-Server. Diese sollten in einem separaten Projekt nach Microsoft 365 überführt werden.
Für die Migration der Public Folder nach Exchange Online ist lokal mindesten Exchange 2013 CU15, Exchange 2016 CU4 oder höher erforderlich. Bei Exchange 2019 gibt es keine Anforderungen an das CU.
Die hier verwendete Systemumgebung basiert auf Exchange 2019 und einem frischen Microsoft 365-Tenant, auf dem noch keine öffentlichen Ordner vorhanden sind. Sollten auf Exchange Online aber bereits welche existieren, so wird empfohlen, diese zu löschen.
Auf dem Exchange-Server befinden sich keine weiteren Migrations-Jobs oder irgendwelche Altlasten, zudem gibt es keinen Mischbetrieb mit anderen Exchange-Versionen. Falls Ihre Umgebung davon abweicht, sind unter Umständen weitere Vorbereitungen notwendig.
Weitere Voraussetzungen
- Die Benutzer sollten vor den öffentlichen Ordnern migriert werden, damit die Berechtigungen auf Ordnerebene korrekt gesetzt werden können.
- In Exchange Online sollte der Migrationsbenutzer die Rolle Organisationsverwaltung innehaben. Auf dem lokalen Exchange kann er alternativ auch Mitglied der Gruppe Server Verwaltung RBAC sein. Es empfiehlt sich zudem, die Multifaktor-Authentifizierung (MFA) für diesen User zu deaktivieren, da es ansonsten zu Problemen bei der Migration kommen kann.
- Darüber hinaus sollte man die Größe alle öffentlichen Ordner prüfen. Sie darf 25 GB nicht überschreiten und lässt sich mit dem Cmdlet Get-PublicFolderStatistics ermitteln. Zudem ist die Anzahl der Postfächer für öffentliche Ordner auf 1000 und für die Migration auf 100 begrenzt.
- Die Namen der öffentlichen Ordner sollte man darauf prüfen, ob sie einen '/' oder '\' enthalten. Diese Zeichen müssen entfernt werden.
- Schließlich sollte der Proxy für den Postfachreplikationsdienst (MRS) auf mindestens einem Exchange-Server aktiviert sein.
Während der Migration bzw. zu ihrem Abschluss (letzter Sync) muss man eine Downtime einplanen, an dem die öffentlichen Ordner nicht zur Verfügung stehen.
Herunterladen der Migrations-Scripts
Die für die Migration nötigen Scripts kann man von Microsofts Website hier und hier herunterladen. Es empfiehlt sich, diese in einem Migrationsordner zu sammeln.
In meinem Beispiel liegen sie unter C:\Skript\Migration und werden von dort ausgeführt. Sie erzeugen CSV-Dateien, welche ebenfalls in diesem Ordner abgelegt werden.
Momentaufnahme erstellen
Da bei der Migration etwas schiefgehen könnte, macht es Sinn, vorher eine Momentaufnahme der öffentlichen Ordner zu erstellen. Dazu führt man folgenden Befehl auf dem lokalen Exchange aus, um die ursprüngliche Quellordnerstruktur zu sichern:
Get-PublicFolder -Recurse -ResultSize Unlimited | Export-CliXML OnPrem_PFStructure.xml
Folgendes Script erstellt eine Momentaufnahme der Statistiken, darunter die Anzahl der Elemente, Größe und Besitzer.
Get-PublicFolderStatistics -ResultSize Unlimited | Export-CliXML OnPrem_PFStatistics.xml
Ein weiteres Kommando hält die Berechtigungen auf die öffentlichen Ordner fest:
Get-PublicFolder -Recurse -ResultSize Unlimited |Get-PublicFolderClientPermission |
Select-Object Identity, User, AccessRights -ExpandProperty AccessRights |
Export-CliXML OnPrem_PFPerms.xml
Und das letzte Script erzeugt eine Momentaufnahme der E-Mail-aktivierten Ordner:
Get-MailPublicFolder -ResultSize Unlimited | Export-CliXML OnPrem_MEPF.xml
AAD Connect
Wer AAD Connect einsetzt, sollte sich vergewissern, dass die Option Öffentliche Exchange E-Mail Ordner nicht angeklickt ist.
CSV-Dateien zur Vorbereitung der Migration generieren
In den nächsten Schritten werden einige CSV-Dateien durch die zuvor heruntergeladenen Scripts generiert, welche später bei der Migration erforderlich sind.
Der erste Aufruf erzeugt eine CSV-Datei, welche die Eigenschaften FolderSize, DeleteItemSize und Foldername enthält:
.\Export-ModernPublicFolderStatistics.ps1 <Folder-to-size map path>
Das nächste Script berechnet, wie viele Postfächer für die öffentlichen Ordner in Exchange Online benötigt werden und schreibt dies wieder in eine CSV-Datei weg:
.\ModernPublicFolderToMailboxMapGenerator.ps1 -MailboxSize 50GB `
-MailboxRecoverableItemSize 1GB -ImportFile .\PFStatistic.csv -ExportFile map.csv
Postfächer für öffentliche Ordner in Exchange Online erstellen
Im nächsten Schritt werden die vorhin erstellten Dateien verarbeitet. Das folgende Script generiert die benötigten Postfächer auf Exchange Online, diese entnimmt es aus der map.csv.
Starten der Migrationsanforderung
Alle Vorbereitungen sind mit diesem Schritt abgeschlossen. Nachfolgend beginnt nun die eigentliche Migration der öffentlichen Ordner zu Exchange Online.
Auf dem lokalen Exchange-Server führt man folgendes Skript aus, das die E-Mail-aktivierten öffentlichen Ordner mit Exchange Online synchronisiert. Die einzugebenden Anmeldedaten sind die des Migrationsbenutzers in Microsoft 365.
.\Sync-ModernMailPublicFolders.ps1 -Credential (Get-Credential) `
-CsvSummaryFile:sync_summary.csv
Die nächsten Schritte führt man in der PowerShell von Exchange Online aus. Die abgebildete Kennwortabfrage erwartet den Migrationsbenutzer der On-prem-Umgebung:
$Source_Credential = Get-Credential smartsocke\administrator
Danach speichert man den FQDN des MRS Proxy-Servers in einer Variablen:
$Source_RemoteServer = "EX01.smartsocke.com"
Jetzt muss man zwischendurch auf dem lokalen Exchange-Server die GUID des primären Postfaches ausgeben. Diesen Wert benötigt man zwingend im nächsten Script:
(Get-OrganizationConfig).RootPublicFolderMailbox.HierarchyMailboxGuid.GUID
Weiter geht es in der Exchange Online PowerShell, hier erstellt man nun den Endpunkt und die Migrationsanforderung für die öffentlichen Ordner. Die weiter oben beschriebenen Schritte für die Credentials und den MRS Server habe ich zur besseren Übersicht in das vollständige Script übernommen:
In der ECP von Exchange Online unter Empfänger => Migration müsste nun ein Migrations-Job zu sehen sein, welcher die öffentlichen Ordner der On-prem-Umgebung synchronisiert. Die Public Folders selbst sind bis zum Abschluss des Vorgangs aber in dieser Konsole noch nicht zu sehen.
Das Ergebnis der Migration kann mit PowerShell in Exchange Online wie folgt prüfen:
Get-MigrationBatch | where {$_.MigrationType -like "*PublicFolder*"} | ft *last*sync*
Get-PublicFolderMailboxMigrationRequest |
Get-PublicFolderMailboxMigrationRequestStatistics |ft targetmailbox,*last*sync*
Sobald die Synchronisation erfolgreich abgeschlossen ist, kann man damit beginnen, die öffentlichen Ordner auf dem lokalen Exchange-Server zu sperren. Damit ist spätestens jetzt eine Downtime unvermeidlich. Sie lassen sich mit PowerShell so deaktivieren:
Set-OrganizationConfig -PublicFolderMailboxesLockedForNewConnections $true
Es sollten nun auch in der ECP des lokalen Exchange-Servers keine öffentlichen Ordner mehr zu sehen sein und auch Get-PublicFolder sollte keine mehr anzeigen.
Abschluss der Migration
Die Migration beendet man nun in der Exchange Online PowerShell mit folgendem Kommando:
Complete-MigrationBatch PublicFolderMigration
Der Status springt in der ECP dann auf Wird abgeschlossen und schließlich auf Abgeschlossen.
Auf Seite von Exchange Online müssen die öffentlichen Ordner nun noch freigegeben werden. Das lässt sich ebenfalls mit der PowerShell von Exchange Online erledigen:
Set-OrganizationConfig -RemotePublicFolderMailboxes $Null -PublicFoldersEnabled Local
Es kann nun einige Zeit dauern, bis die öffentlichen Ordner unter Exchange Online zu sehen sind, Microsoft gibt dafür einen Wert von zirka 30 Minuten an. Anschließend kann mit einigen Testbenutzern die Zugriffe auf die öffentlichen Ordner und deren Inhalte ausprobieren.
Sollte soweit alles in Ordnung sein, dann kann die Migration auf dem lokalen Exchange-Server ebenfalls mit folgendem Befehl beendet werden:
Set-OrganizationConfig -PublicFolderMailboxesMigrationComplete:$true `
-PublicFoldersEnabled Remote
Die öffentlichen Ordner sind danach auf dem lokalen Exchange nicht mehr sichtbar.
Täglich Know-how für IT-Pros mit unserem Newsletter
Roland Eich ist gelernter Fachinformatiker für Systemintegration und in der IT seit über 14 Jahren zu Hause. Roland deckt aufgrund seiner Erfahrungen ein breites Spektrum der Microsoft-Produktpalette ab.
Zudem besitzt er verschiedene Zertifizierungen (MCITP, MCSA und MCSE, ITIL, PRINCE2).
// Kontakt: E-Mail //
Verwandte Beiträge
- Im Test: On-prem-Exchange nach Microsoft 365 umziehen mit CodeTwo Office 365 Migration
- Hybridmodus von Exchange deaktivieren
- Exchange und Office 365 im Hybridmodus: Postfächer migrieren
- Microsoft blockiert Outlook Web App (OWA) Premium in nicht unterstützten Browsern
- Postfächer aus Microsoft 365 in eine PST-Datei exportieren mit PowerShell
Weitere Links
3 Kommentare
Guten Tag,
vielen Dank erstmal für den ausführlichen Artikel!
Kurze Frage dazu:
Ist es möglich auch einzelne Public Folder zu migrieren und nicht direkt alle? In einem Projekt gibt es ein Hybrid Szenario, wo das erforderlich wäre.
Danke!
Hallo,
vielen Dank für die ausführliche Anleitung, die Migration konnte bei uns damit problemlos durchgeführt werden.
Bei uns hat der Punkt "Abschluss der Migration" sehr lange gedauert, der finale Sync benötigte ungefähr 12 Stunden. Also nicht aus der Ruhe bringen lassen, wenn erstmal nichts passiert.
Danke
Zwar gibt es auch eine Anleitung von Microsoft, diese hier ist aber wesentlich übersichtlicher.
Sollte jemand das Problem haben dass kein Endpoint für die Öffentlichen Ordner erstellt werden kann. Empfehle ich die Softdeleted Mailboxen im Exchange Online der Public Folder zu prüfen.
Diese müssen gelöscht werden.
https://docs.microsoft.com/en-us/exchange/troubleshoot/public-folders/pu...