Hier ist der zweite Teil der Migration von Exchange 2010 zu Exchange 2016. Der erste Teil findet sich hier:
Migration von Exchange 2010 zu Exchange 2016 Teil 1
In diesem Artikel werden die öffentlichen Ordner und die Postfächer migriert. Die Migration der Öffentlichen Ordner kann nur mit Downtime erfolgen, daher erst lesen, dann planen :-)
Update: Reihenfolge der Screenshots korrigiert
Vorbereitung Migration Öffentliche Ordner
Wie schon in Teil 1 erwähnt, ist bisher kein Zugriff von einem Exchange 2016 Postfach auf die Öffentlichen Ordner von Exchange 2010 möglich. Wer keine Öffentlichen Ordner unter Exchange 2010 einsetzt, kann sich diesen Teil sparen und ab „Exchange 2016 als Proxy für Exchange 2010“ weiterlesen.
Auf dem Exchange 2010 Server sind Öffentliche Ordner eingerichtet, die migriert werden müssen, hier ein Beispiel:
Der Exchange 2010 Benutzer Frank kann auf die Öffentlichen Ordner unter Exchange 2010 zugreifen:
![image image]()
Der Benutzer Hans mit einem Exchange 2016 Postfach allerdings nicht:
![image image]()
Damit Exchange 2016 Benutzer auf die Öffentlichen Ordner zugreifen können, wird eine ProxyMailbox benötigt. Die ProxyMailbox für öffentliche Ordner sollte am besten in einer separaten Datenbank gespeichert sein. Die ProxyMailbox ist im Prinzip ein ganz normales Postfach, es kann per Shell oder GUI angelegt werden. Hier der schnell Weg über die Shell (der letzte Befehl muss via Shell ausgeführt werden):
Neue Datenbank für die ProxyMailbox anlegen:
New-MailboxDatabase -Server FWEX2010 -Name PFProxyDatabase -IsExcludedFromProvisioning $true
![image image]()
ProxyMailbox in der neuen Datenbank anlegen:
New-Mailbox -Name PFProxyMailbox1 -Database PFProxyDatabase -UserPrincipalName PFProxyMailbox1@frankysweb.local
![image image]()
ProxyMailbox aus dem Adressbuch ausblenden:
Set-Mailbox -Identity PFProxyMailbox1 -HiddenFromAddressListsEnabled $true
Nachdem Datenbank und ProxyMailbox erzeugt wurden, kann der Zugriff eingeschaltet werden. Dazu muss folgender Befehl auf dem Exchange 2016 Server ausgeführt werden:
Set-OrganizationConfig -PublicFoldersEnabled Remote -RemotePublicFolderMailboxes PFProxyMailbox1
Kurz warten, dann tauchen auch die Exchange 2010 Öffentlichen Ordner bei Exchange 2016 Benutzern auf:
![image image]()
Exchange 2016 als Proxy für Exchange 2010
Jetzt werden die DNS-Einträge auf Exchange 2016 umgestellt, wie schon im ersten Teil erwähnt, betrifft es ab hier alle Clients. Aktuell verweisen die DNS Einträge noch auf Exchange 2010 (172.16.100.101):
![12-11-_2015_20-48-40]()
Das CAS-Array mit dem Namen outlook-int bleibt bestehen, denn Exchange 2016 dient als Proxy für Postfächer die auf Exchange 2010 laufen. Die Verbindung wird also via outlook.frankysweb.de von Exchange 2016 und dann weitergeleitet an outlook-int.frankysweb.de, wenn das Postfach noch auf den Exchange 2010 Server liegt.
Die DNS Einträge werden wie folgt geändert:
![12-11-_2015_20-50-08]()
outlook.frankysweb.de und autodiscover.frankysweb.de verweisen jetzt auf die Exchange 2016 IP. Die Änderungen an der HOSTS-Datei an den Test Clients können rückgängig gemacht werden.
Wer Outlook Anywhere und/oder ActiveSync nutzt muss jetzt seine Firewall anpassen. Je nachdem wie Exchange 2010 im Internet erreichbar war (NAT, ReverseProxy), muss jetzt auf Exchange 2016 umgestellt werden. Wer nur NAT nutzt, also Exchange 2010 direkt per Portforward im Internet erreichbar gemacht hat, muss nur die Destination IP auf die Exchange 2016 IP ändern. Das Vorgehen hängt natürlich vom eingesetzten Produkt/Weg ab.
Ab hier sollten wir ein bisschen Zeit ins Land ziehen lassen, bis alle Clients die DNS Änderung mitbekommen haben. Mal einen Tag die Füße hochlegen, kann auch nicht schaden:
![12-11-_2015_20-50-53]()
Nachdem etwas Zeit vergangen ist, sollte die Outlook Verbindung von Exchange 2016 Benutzern (Testbenutzer aus Teil 1) so aussehen:
![image image]()
Benutzer Hans nutzt MAPIoverHTTP mit Exchange 2016, wohingegen Benutzer Frank MAPI mit Exchange 2010 nutzt:
![image image]()
Wenn Benutzer Frank OWA aufruft, bekommt er die neue Anmeldemaske:
![image image]()
Und wird nach der Anmeldung an Exchange 2010 OWA verwiesen:
![image image]()
Migration der Postfächer
Jetzt ist es an der Zeit die Postfächer zu verschieben. Die Migration der Postfächer ist der einfachste Teil. Wie auch schon für das Testpostfach wird ein neuer Migrationsbatch angelegt:
![image image]()
Jetzt werden alle Postfächer ausgewählt die zu Exchange 2016 migriert werden sollen, mit Ausnahme der ProxyMailbox für Öffentliche Ordner, diese bleibt auf dem Exchange 2010 Server:
![image image]()
Im nächsten Dialog einfach wieder die Exchange 2016 Datenbank auswählen
![image image]()
Abschließend kann der Migrationsbatch gestartet werden:
![image image]()
Je nach Anzahl der Benutzer und des Zeitfensters muss hier jeder selbst entscheiden, wie viele Benutzer innerhalb eines Batches abgearbeitet werden sollen.
Der Status des Migrationsbatches lässt über den Punkt „Details anzeigen“ einsehen:
![image image]()
Wenn alle Postfächer des Migrationsbatches verschoben sind, sieht es wie folgt aus:
![image image]()
Sobald das Postfach zu Exchange 2016 verschoben wurde, erhalten die Benutzer die Nachricht das Outlook neugestartet werden muss
![image image]()
Nach dem Neustart ist Outlook mit Exchange 2016 verbunden.
![image image]()
So können nun nach und nach alle Postfächer verschoben werden, Die Benutzer werden nur einmalig aufgefordert Outlook neu zu starten. Ich denke das ist auch am Tag verkraftbar. Wer das umschubsen der Benutzer lieber in die Nacht verlagern möchte, kann die Option „Batch manuell abschließen“ anwählen, dann können die Postfächer am Tag migriert werden, und Nachts lässt man schnell ein kleines Script laufen und finalisiert die Postfächer.
Migration Öffentlicher Ordner
Wenn alle Postfächer verschoben wurden, kann mit der Migration der Öffentlichen Ordner gestartet werden. Wer keine Öffentlichen Ordner nutzt, kann diesen Teil überspringen und geduldig auf Teil 3 warten.
Für die Migration der Öffentlichen Ordner, werden die „Public Folder Migration Scripts“ benötigt, die Scripte können hier runtergeladen werden:
Microsoft Exchange 2013 Public Folders Migration Scripts
Jetzt nicht über „Microsoft Exchange 2013 Public Folder Migration Scripts“ wundern, die Scripte sind ebenfalls für Exchange 2016 gültig.
![image image]()
Die 4 Dateien werden auf dem Exchange 2010 Server abgelegt, hier im Beispiel in C:\PFMigration
![image image]()
Jetzt werden die folgenden 3 Befehle auf dem Exchange 2010 Server ausgeführt um die vorhandene Struktur, Anzahl der Elemente und Berechtigungen zu sichern:
Get-PublicFolder -Recurse | Export-CliXML C:\PFMigration\Legacy_PFStructure.xml
Get-PublicFolderStatistics | Export-CliXML C:\PFMigration\Legacy_PFStatistics.xml
Get-PublicFolder -Recurse | Get-PublicFolderClientPermission | Select-Object Identity,User -ExpandProperty AccessRights | Export-CliXML C:\PFMigration\Legacy_PFPerms.xml
![image image]()
Die 3 Befehle erzeugen diese 3 Dateien:
![image image]()
Hinweis: Ein Backshlash „\“ im Namen des Öffentlichen Ordners wird nicht unterstützt, Ordner mit Backshlash im Namen müssen vor der Migration umbenannt werden. Mit dem folgenden Befehl lassen sich entsprechende Ordner finden:
Get-PublicFolderStatistics -ResultSize Unlimited | Where {$_.Name -like "*\*"} | Format-List Name, Identity
Wichtig ist ebenfalls, dass es keine anderen Migrationsversuche der Öffentlichen Ordner gab, in meiner Testumgebung bin ich mir an dieser Stelle sicher und überspringe die Steps zur Prüfung. Wer sich nicht ganz sicher ist, sollte das entsprechende Vorgehen hier nachlesen.
Auch an dieser Stelle möchte ich darauf hinweisen: Diese Anleitung zeigt nur die Vorgehensweise, ist aber nicht allgemein gültig. Wer nur wenige Öffentliche Ordner hat, kann weitermachen, wer viele Öffentliche Ordner hat und / oder viel Datenvolumen, sollte die neue Öffentliche Ordner Struktur planen.
Ich gehe an dieser Stelle davon aus, dass es nur wenige Öffentliche Ordner gibt und dien Datenmenge überschaubar ist (max. 20 GB, was in den meisten Fällen zu einer PFMailbox führt)
Also werden jetzt die nötigen CSV Dateien für die Migration mit Hilfe der Scripte erstellt:
.\Export-PublicFolderStatistics.ps1 FolderToSizeMap.csv fwex2010.frankysweb.local
![image image]()
Als nächstes wird das Mapping von Öffentlichen Ordner zur Öffentlichen Ordner Mailbox erstellt:
.\PublicFolderToMailboxMapGenerator.ps1 21474836480 .\FolderToSizeMap.csv FolderToMailBoxMap.csv
![image image]()
Hinweis: 21474836480 entspricht 20 GB in Bytes und bedeutet an dieser Stelle, das eine Öffentliche Ordner Mailbox max. 20 GB groß sein soll.
Da ich nur eine Postfach für Öffentliche Ordner benutzen möchte, erzeuge ich jetzt das entsprechende Postfach auf dem Exchange 2016 Server:
New-Mailbox -PublicFolder Mailbox1 -HoldForMigration:$true
![image image]()
Jetzt kann der Migrationsbatch für die Öffentlichen Ordner angelegt und gestartet werden:
New-MigrationBatch -Name PFMigration -SourcePublicFolderDatabase (Get-PublicFolderDatabase -Server FWEX2010) -CSVData (Get-Content \\fwex2010\C$\PFMigration\FolderToMailBoxMap.csv -Encoding Byte) -NotificationEmails administrator@frankysweb.de
Start-MigrationBatch PFMigration
![image image]()
Der Status der Migration lässt sich über die Shell oder über EAC überprüfen:
Get-MigrationBatch
![image image]()
![image image]()
Jetzt heißt es warten bis der Migratonsbatch fertig ist und den Status „Synchronisiert“ hat:
![image image]()
Für die nächsten Schritte ist ein Wartungsfenster nötig, denn der Zugriff auf die Öffentlichen Ordner, wird nicht möglich sein. Outlook wird eine entsprechende Nachricht anzeigen:
![image image]()
Set-OrganizationConfig -PublicFoldersLockedForMigration:$true
![image image]()
Set-OrganizationConfig -PublicFoldersEnabled Remote
Complete-MigrationBatch PFMigration
![image image]()
Jetzt abwarten, bis der Migrationbatch abgeschlossen ist:
![image image]()
![image image]()
Sobald der Migrationsbatch abgeschlossen ist, kann getestet werden ob alles geklappt hat. Der Test kann mit einem Testbenutzer durchgeführt werden, in diesem Fall der Benutzer Frank:
set-mailbox frank -DefaultPublicFolderMailbox Mailbox1
![image image]()
Benutzer Frank kann jetzt den Zugriff auf die Öffentlichen Ordner testen:
![image image]()
Wenn alles soweit gut aussieht, können die Öffentlichen Ordner wieder für alle Benutzer freigegeben werden, dazu wird der folgende Befehl auf dem Exchange 2016 Server ausgeführt:
Get-Mailbox -PublicFolder | Set-Mailbox -PublicFolder -IsExcludedFromServingHierarchy $false
Danach wird dann dieser Befehl auf dem Exchange 2010 Server ausgeführt:
Set-OrganizationConfig -PublicFolderMigrationComplete:$true
Und zu guter Letzt noch dieser Befehl auf dem Exchange 2016 Server:
Set-OrganizationConfig -PublicFoldersEnabled Local
Zugegeben, die Migration der Öffentlichen Ordner ist kompliziert und erfordert Downtime, aber wenn man das ein paar Mal gemacht hat… Wichtig ist hier die Planung, wie groß sollen die Postfächer für Öffentliche Ordner sein, wie viele Postfächer möchte ich anlegen, wie viel Wachstum wird es geben, usw. Auch die Downtime sollte gut geplant werden und ein entsprechend langes Wartungsfenster kommuniziert werden.
Ab hier liegen also Postfächer und Öffentliche Ordner auf Exchange 2016. Jetzt ist es an der Zeit (wenn erforderlich) die MX Records und Geräte wie Drucker, Scanner, andere Server die Mails verschicken auf Exchange 2016 umzustellen.
Im nächsten und letzten Teil wird dann aufgeräumt und Exchange 2010 deinstalliert.
Der Beitrag Migration von Exchange 2010 zu Exchange 2016 (Teil 2) erschien zuerst auf Franky's Web.