Der Support für Exchange Server 2013 endet am 11.04.2023, ab diesen Datum wird es keine Sicherheitsupdates mehr für Exchange 2013 geben. Es ist daher höchste Zeit sich mit der Migration von Exchange 2013 zu Exchange 2019 zu befassen. Die Migration sollte keine großen Hürden darstellen und entspricht nahezu 1-zu-1 der Migration von Exchange 2013 zu Exchange 2016. Die Migration von Exchange 2013 zu Exchange 2016 macht allerdings wenig Sinn, da Exchange 2016 auch bereits im erweiterten Support befindet. Hier also eine kleines HowTo zur Migration von Exchange 2013 zu Exchange 2019.
Vorwort
Diese Anleitung beschreibt die Migration von Exchange 2013 zu Exchange 2019 und soll einen Überblick über die notwendigen Schritte verschaffen und ist daher bewusst einfach gehalten. Zertifikate und der Namespace sollen übernommen werden. Da sich Exchange 2013 und Exchange 2019 sehr stark ähneln, ist die Migration recht einfach und wird in den meisten Fällen wohl keine großen Probleme bereiten.
Eins noch vorweg: Dies ist keine allgemein gültige Migrationsanleitung, die sich auf jede Exchange 2013 Organisation anwenden lässt. Die Migration sollte daher in einer Testumgebung ausprobiert werden, um ein Gefühl dafür zu bekommen.
Umgebung
Die Testumgebung besteht aus 3 Windows Servern. Ein Domain Controller, ein Exchange 2013 Server und ein Exchange 2019 Server:
Exchange 2013 und Exchange 2019 sind bereits installiert.
Damit es während der Migration zu keinen Problemen kommt sollte die Exchange Organisation die aktuellen Updates installiert haben. Es sollte also das aktuelle CU23 und die aktuell verfügbaren Sicherheitsupdates für das Betriebssystem sowie Exchange Installiert sein. Der Download für das Exchange 2013 CU 23 findet sich hier:
Die Exchange 2019 Installation in einer bestehenden Exchange 2013 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:
Exchange 2013 ist auf die folgenden URLs konfiguriert:
- Servername: EX2013EX1.frankysweblab.de
- Outlook: outlook.frankysweblab.de
- OWA, EWS, ActiveSync, OAB: outlook.frankysweblab.de
- Outlook Anywhere: outlook.frankysweblab.de
- Autodiscover: autodiscover.frankysweblab.de
Exchange 2016 soll die folgenden URLs benutzen:
- Servername: EX2013EX2.frankysweblab.de
- Outlook: outlook.frankysweblab.de
- OWA, EWS, ActiveSync OAB: outlook.frankysweblab.de
- Outlook Anywhere: outlook.frankysweblab.de
- MAPIoverHTTP: outlook.frankysweblab.de
- Autodiscover: autodiscover.frankysweblab.de
Der neue Exchange 2019 soll also die gleichen URLs benutzen wie Exchange 2013, so brauchen sich die Benutzer nicht umgewöhnen.
MAPIoverHTTP ist in der Testumgebung bereits aktiviert. Falls dies in der zu migrierenden Exchange 2013 Organisation noch nicht der Fall sein sollte, sollte MAPIoverHTTP vor der Migration aktiviert werden. Wie MAPIoverHTTP aktiviert wird, habe ich hier beschrieben:
Vorbereitung für die Migration
Wie bereits erwähnt ist Exchange 2019 in der Testumgebung bereits installiert, aber noch nicht konfiguriert. Daher werden zunächst die URLs konfiguriert, am einfachsten passiert das mittels Exchange Management Shell:
$servername = "EX2013EX2"
$internalhostname = "outlook.frankysweblab.de"
$externalhostname = "outlook.frankysweblab.de"
$autodiscoverhostname = "autodiscover.frankysweblab.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
Wichtig: Nach der Installation von Exchange 2019 wird der Server auf Autodiscover Anfragen der Clients reagieren. Damit Clients keine Zertifikatswarnungen oder falsche URLs übermittelt bekommen, sollte der neue Exchange 2019 Server direkt nach der Installation mit den gleichen URLs und dem gleichen Zertifikat wie Exchange 2013 konfiguriert werden.
Das Zertifikat des Exchange 2013 Servers kann weiterverwendet werden, es ist nicht zwingend nötig ein neues Zertifikat zu kaufen oder durch die interne PKI auszustellen. Es macht keinen Unterschied, ob ein neues Zertifikat gekauft wird, oder das vorhandene weiter verwendet wird. Wichtig ist, dass die verwendeten DNS Namen auf dem Zertifikat vorhanden sind, in meinem Fall also outlook.frankysweblab.de und autodiscover.frankysweblab.de. Das Thema Zertifikate für Exchange Server ist ausführlich im Whitepaper beschrieben.
In meinem Fall exportiere ich das vorhandene Zertifikat via MMC vom Exchange 2013 Server und importiere es wieder auf dem Exchange 201 Server:
Wichtig ist, dass beim Import die Option „Mark this key as exportable“ angehakt wird:
Nach dem Import des Zertifikat, muss das Zertifikat noch für die Exchange Dienste aktiviert werden:
Wichtig: Alle Einstellungen im Exchange Admin Center werden auf den Exchange 2019 Server durchgeführt. Das Exchange 2013 Admin Center braucht man nicht mehr.
Zertifikat und URLs sind nun konfiguriert, fehlen noch die Authentifizierungseinstellungen der Exchange Protokolle. Hier kann man sich nach den Einstellungen des Exchange 2013 Servers richten und den Exchange 2019 Server entsprechend gleich konfigurieren. Hier einmal das Beispiel für Outlook Anywhere:
Gleiches gilt auch für die restlichen Exchange Protokolle beispielsweise EWS, MAPIoverHTTP oder OWA. Auch hier kann man sich für jedes Protokoll am Exchange 2013 Server orientieren und das Verzeichnis des Exchange 2019 Servers anpassen:
Um die Vorbereitungen abzuschließen, muss jetzt noch der neue Exchange 2019 Server als Quellserver für den Sendeconnector hinzugefügt werden:
Die Vorbereitungen sind nun soweit abgeschlossen. Der Exchange 2019 Server könnte nun auch schon Mails ins Internet schicken und wird auch schon innerhalb des Active Directory auf Autodiscover Anfragen der Clients reagieren.
Im zweiten Teil wird dann die eigentliche Migration der Daten durchgeführt.