Website-Icon Frankys Web

Migration von Exchange 2010 zu Exchange 2016 (Teil 2)

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:

Der Benutzer Hans mit einem Exchange 2016 Postfach allerdings nicht:

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

ProxyMailbox in der neuen Datenbank anlegen:

New-Mailbox -Name PFProxyMailbox1 -Database PFProxyDatabase -UserPrincipalName PFProxyMailbox1@frankysweb.local

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:

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):

 

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:

 

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:

 

Nachdem etwas Zeit vergangen ist, sollte die Outlook Verbindung von Exchange 2016 Benutzern (Testbenutzer aus Teil 1) so aussehen:

Benutzer Hans nutzt MAPIoverHTTP mit Exchange 2016, wohingegen Benutzer Frank MAPI mit Exchange 2010 nutzt:

Wenn Benutzer Frank OWA aufruft, bekommt er die neue Anmeldemaske:

Und wird nach der Anmeldung an Exchange 2010 OWA verwiesen:

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:

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:

Im nächsten Dialog einfach wieder die Exchange 2016 Datenbank auswählen

Abschließend kann der Migrationsbatch gestartet werden:

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:

Wenn alle Postfächer des Migrationsbatches verschoben sind, sieht es wie folgt aus:

Sobald das Postfach zu Exchange 2016 verschoben wurde, erhalten die Benutzer die Nachricht das Outlook neugestartet werden muss

Nach dem Neustart ist Outlook mit Exchange 2016 verbunden.

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.

Die 4 Dateien werden auf dem Exchange 2010 Server abgelegt, hier im Beispiel in C:\PFMigration

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

Die 3 Befehle erzeugen diese 3 Dateien:

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

Als nächstes wird das Mapping von Öffentlichen Ordner zur Öffentlichen Ordner Mailbox erstellt:

.\PublicFolderToMailboxMapGenerator.ps1 21474836480 .\FolderToSizeMap.csv FolderToMailBoxMap.csv

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

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

Der Status der Migration lässt sich über die Shell oder über EAC überprüfen:

Get-MigrationBatch

Jetzt heißt es warten bis der Migratonsbatch fertig ist und den Status „Synchronisiert“ hat:

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:

Set-OrganizationConfig -PublicFoldersLockedForMigration:$true

Hinweis: Um den Vorgang an dieser Stelle zu beschleunigen, ist es erforderlich den IIS auf dem Exchange 2010 Server neu zu starten (iisreset). Dabei werden natürlich Outlook Verbindungen unterbrochen. Nach dem Neustart kann mit den folgenden Befehlen weiter gemacht werden. Alternativ hilft auch „warten“:

Set-OrganizationConfig -PublicFoldersEnabled Remote
Complete-MigrationBatch PFMigration

Jetzt abwarten, bis der Migrationbatch abgeschlossen ist:

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

Benutzer Frank kann jetzt den Zugriff auf die Öffentlichen Ordner testen:

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.

Die mobile Version verlassen