Vorwort
Exchange 2016 liegt seit dem 01.10 in der finalen Version vor. Viele werden Exchange 2013 übersprungen haben, und derzeit noch Exchange 2010 einsetzen, für diejenigen ist es an der Zeit die Migration zu Exchange 2016 zu planen. Exchange 2016 wird die letzte Version sein, zu der sich von Exchange 2010 direkt migrieren lässt.
Diese Anleitung beschreibt die Migration von Exchange 2010 zu Exchange 2016 und soll einen Überblick über die notwendigen Schritte verschaffen und ist daher bewusst einfach gehalten. Zertifikate und auch der Namespace sollen übernommen werden, denn man muss das Rad ja nicht ständig neu erfinden.
Diese Anleitung wird aus 3 Teilen bestehen, im ersten Teil wird die Migration vorbereitet, im zweiten Teil werden die Postfächer und die Öffentlichen Ordner migriert und im dritten Teil wird aufgeräumt.
Eins noch vorweg: Dies ist keine allgemein gültige Migrationsanleitung, die sich auf jede Exchange 2010 Organisation anwenden lässt. Die Implementierungsmöglichkeiten bei Exchange 2010 waren sehr vielfältig, daher sollte man sich vor der Migration seine Exchange Infrastruktur möglichst 1-zu-1 in einer Testumgebung abbilden um die Migration zu testen.
Umgebung
Die Testumgebung besteht aus 3 Windows Server 2012 R2. Ein Domain Controller, ein Exchange 2010 Server und ein Exchange 2016 Server:
Exchange 2010 und Exchange 2016 sind bereits installiert.
Damit die Koexistenz und damit auch die Migration unterstützt wird, muss Exchange 2010 Service Pack 3 und das Update Rollup 11 installiert sein. Die Downloads für das Service Pack 3 und Update Rollup 11 finden sich hier:
Die Exchange 2016 Installation in einer bestehenden Exchange 2010 Organisation, unterscheidet sich nicht von der Installation in einer frischen Umgebung. Nur die Frage nach dem Organisationnamen entfällt. Ich spare mir daher die Installation von Exchange 2016 zu beschreiben, denn das habe ich bereits hier getan:
https://www.frankysweb.de/exchange-2016-installation-auf-windows-server-2012-r2/
Exchange 2010 ist auf die folgenden URLs konfiguriert:
- Servername: EX2010.frankysweb.local
- Outlook (CAS-Array): outlook-int.frankysweb.de
- OWA, EWS, ActiveSync, OAB: outlook.frankysweb.de
- Outlook Anywhere: outlook.frankysweb.de
- Autodiscover: autodiscover.frankysweb.de
Exchange 2016 soll die folgenden URLs benutzen:
- Servername: EX2016.frankysweb.local
- Outlook: outlook.frankysweb.de
- OWA, EWS, ActiveSync OAB: outlook.frankysweb.de
- Outlook Anywhere: outlook.frankysweb.de
- Autodiscover: autodiscover.frankysweb.de
Exchange 2016 soll also die gleichen URLs benutzen wie Exchange 2010, so brauchen sich die Benutzer nicht umgewöhnen.
Vorbereitung
Wie bereits erwähnt ist Exchange 2016 bereits installiert, aber noch nicht konfiguriert. Daher werden zunächst die URLs konfiguriert, am einfachsten passiert das mittels Exchange Management Shell:
$servername = "EX2016" $internalhostname = "outlook.frankysweb.de" $externalhostname = "outlook.frankysweb.de" $autodiscoverhostname = "autodiscover.frankysweb.de" $owainturl = "https://" + "$internalhostname" + "/owa" $owaexturl = "https://" + "$externalhostname" + "/owa" $ecpinturl = "https://" + "$internalhostname" + "/ecp" $ecpexturl = "https://" + "$externalhostname" + "/ecp" $ewsinturl = "https://" + "$internalhostname" + "/EWS/Exchange.asmx" $ewsexturl = "https://" + "$externalhostname" + "/EWS/Exchange.asmx" $easinturl = "https://" + "$internalhostname" + "/Microsoft-Server-ActiveSync" $easexturl = "https://" + "$externalhostname" + "/Microsoft-Server-ActiveSync" $oabinturl = "https://" + "$internalhostname" + "/OAB" $oabexturl = "https://" + "$externalhostname" + "/OAB" $mapiinturl = "https://" + "$internalhostname" + "/mapi" $mapiexturl = "https://" + "$externalhostname" + "/mapi" $aduri = "https://" + "$autodiscoverhostname" + "/Autodiscover/Autodiscover.xml" Get-OwaVirtualDirectory -Server $servername | Set-OwaVirtualDirectory -internalurl $owainturl -externalurl $owaexturl Get-EcpVirtualDirectory -server $servername | Set-EcpVirtualDirectory -internalurl $ecpinturl -externalurl $ecpexturl Get-WebServicesVirtualDirectory -server $servername | Set-WebServicesVirtualDirectory -internalurl $ewsinturl -externalurl $ewsexturl Get-ActiveSyncVirtualDirectory -Server $servername | Set-ActiveSyncVirtualDirectory -internalurl $easinturl -externalurl $easexturl Get-OabVirtualDirectory -Server $servername | Set-OabVirtualDirectory -internalurl $oabinturl -externalurl $oabexturl Get-MapiVirtualDirectory -Server $servername | Set-MapiVirtualDirectory -externalurl $mapiexturl -internalurl $mapiinturl Get-OutlookAnywhere -Server $servername | Set-OutlookAnywhere -externalhostname $externalhostname -internalhostname $internalhostname -ExternalClientsRequireSsl:$true -InternalClientsRequireSsl:$true -ExternalClientAuthenticationMethod 'Negotiate' Get-ClientAccessService $servername | Set-ClientAccessService -AutoDiscoverServiceInternalUri $aduri
Jetzt muss die Authentifizierung für Outlook Anywhere von Exchange 2016 an Exchange 2010 angepasst werden:
Zuerst prüfen, welche Authentifizierung Exchange 2010 verwendet:
Die gleiche Authentifizierungsmethode wird dann auch für Exchange 2016 eingestellt:
Auch die Art der Anmeldung an OWA und ECP muss gleich konfiguriert werden
Da ich die URLs nicht verändere kann ich das vorhandene Zertifikat des Exchange 2010 Servers weiterverwenden:
Das ist natürlich nur sinnvoll, wenn das Zertifikat noch eine ausreichend lange Restlaufzeit hat und auch mit SHA256 signiert wurde. Das Zertifikat kann dann einfach vom Exchange 2010 Server exportiert werden und auf dem Exchange 2016 Server wieder importiert werden:
Dann noch den Diensten zuordnen
Aber auch ein neues Zertifikat ist nicht das Problem. Ein neues Zertifikat kann entweder von einer internen CA oder von einer öffentlichen CA ausgestellt werden. Der Prozess unterscheidet sich dabei nicht von Exchange 2013:
Als nächsten kann Exchange 2016 zum Sendeconnector hinzugefügt werden, damit über Exchange 2016 auch Mails versendet werden können:
Bei der Exchange 2016 Installation wird ein neues Offline Adressbuch erzeugt, welches der Exchange 2016 Datenbank noch zugewiesen werden muss:
Die Grundkonfiguration ist damit bereits abgeschlossen.
Jetzt ein Testpostfach in die Exchange 2016 Datenbank verschoben werden:
Testpostfach auswählen
Namen vergeben und die Exchange 2016 Datenbank auswählen
Dann die Postfachverschiebung abschließen:
Jetzt ein bisschen warten bis die Postfachverschiebung abgeschlossen ist:
Sobald das Postfach Verschoben wurde, erscheint wieder die berüchtigte Meldung, wenn Outlook zum Zeitpunkt der Postfachverschiebung geöffnet war:
Der Microsoft Exchange-Administrator hat eine Änderung durchgeführt, die einen Neustart von Outlook erfordert
Um die Verbindung zu testen ohne gleich alle Clients umzustellen, können wir den DNS Server umgehen und folgende Einträge in der HOSTS-Datei unter c:\Windows\System32\drivers\etc hinzufügen:
- 172.168.100.102 outlook.frankysweb.de
- 172.16.100.102 autodiscover.frankysweb.de
Wobei 172.16.100.102 die IP meines Exchange 2016 Servers ist. Der Eintrag in der HOSTS-Datei dienst natürlich nur zum Test und wird nach erfolgreichem Test wieder entfernt.
Nachdem Outlook neugestartet wurde, sollte es jetzt mit Exchange 2016 verbunden sein:
Hier kann man schon erkennen, dass nun MAPIoverHTTP genutzt wird, welches das neue Standardprotokoll für Exchange 2016 ist.
Hinweis: Wer Outlook 2010 als Client nutzt, muss darauf achten das folgendes Update installiert ist:
Erst das Update liefert Support für MAPIoverHTTP für Outlook 2010.
Und auch Autodiscover sollte nun die Exchange 2016 Einstellungen liefern:
Jetzt können die üblichen Tests durchgeführt werden, E-Mail Empfang intern, E-Mail Empfang extern, E-Mail Versand intern, E-Mail Versand extern und alles was man noch so machen möchte.
Hier bietet sich nun ein ausführlicher Test an, auch mit mehreren Testpostfächern. Wichtig ist auch daran zu denken, dass Exchange nicht nur Mailserver spielt, auch Kalender, Raumbuchungen, Abwesenheitsassistent usw. sollte getestet werden. Ebenfalls nicht vergessen den Zugriff von extern zu testen (ActiveSync, Outlook Anywhere).
WICHTIG: Unbedingt auch testen, ob der Zugriff möglich ist, wenn das Postfach noch nicht auf Exchange 2016 verschoben wurde, also ein bestehendes Exchange 2010 Postfach raussuchen und HOSTS-Datei entsprechend wie oben beschrieben ändern. Dieser Zugriff muss für die weitere Migration möglich sein.
HINWEIS: Wenn öffentliche Ordner genutzt werden, sollte bei den Tests aufgefallen sein, das von einem Exchange 2016 Postfach nicht auf Exchange 2010 Öffentliche Ordner zugegriffen werden kann. Im zweiten Teil dieser Anleitung, wird der Zugriff entsprechend eingerichtet.