HowTo: Migration von Exchange 2013 zu Exchange 2019 (Teil 1)

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:

HowTo: Migration von Exchange 2013 zu Exchange 2019 (Teil 1)

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:

Exchange Zertifikate

Wichtig ist, dass beim Import die Option „Mark this key as exportable“ angehakt wird:

Import des Zertifikats

Nach dem Import des Zertifikat, muss das Zertifikat noch für die Exchange Dienste aktiviert werden:

Zertifikat aktivieren

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:

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:

Exchange Protokolle
Diese Einstellungen kontrolliert man am besten für jedes Verzeichnis und übernimmt die entsprechenden Einstellungen vom Exchange 2013 Server für den Exchange 2019 Server.

Um die Vorbereitungen abzuschließen, muss jetzt noch der neue Exchange 2019 Server als Quellserver für den Sendeconnector hinzugefügt werden:

Sendeconnector

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.

12 Gedanken zu „HowTo: Migration von Exchange 2013 zu Exchange 2019 (Teil 1)“

  1. Beachte: zum obigen Punkt „Wichtig: Alle Einstellungen im Exchange Admin Center werden auf den Exchange 2019 Server durchgeführt. Das Exchange 2013 Admin Center braucht man nicht mehr.“

    In einem Hybridscenario, in dem ein Exchange2013 und Exchange2019 Server zusammen betreiben werden,
    muss, so lange sich das Administrator Postfach noch auf dem Exchange2013 befindet, beim Zugriff auf das ECP des Exchange2019 zwingend folgender Querystring an die aufgerufene URL angehangen werden: https:///ecp/?ExchClientVer=15.2
    sonst kommt es zu ungewöhnlichen Fehlermeldungen im Browser beim Versuch die Exchange2019 Datenbanken zu verwalten (Timeouts, „versuchen Sie es später nchmal“ oder HTTP 500 Fehler im rechten Frame)
    Habe sehr lange nach der Ursache dieser merkwürdigen Fehler gesucht (Verdacht lag erst auf falsch konfigurierten Zertifikaten etc) und bin schlussendlich in den Troubleshooting FAQ von Microsoft fündig geworden.

    Quelle: https://learn.microsoft.com/de-de/exchange/troubleshoot/administration/can't-manage-ex19-database-eac

    Hintergrund: So lange sich das Administrator Postfach noch auf dem Exchange2013 befindet, werden die ECP Verbindungen alle mit der alten Exchange2013 Clientversion 15.0 aufgebaut.
    Das führ beim Versuch Exchnage2019 Ressourcen zu verwalten zu fehlern.
    Umgekehrt ist jedoch ein Zugriff auf Exchange2013 Ressourcen mit der ClientVersieon 15.2 jederzeit möglich, da abwärtskompatibel.

    Sobald das Postfach des Nutzers „Administrator“ auf den Exchange2019 verschoben wurde, wird die imBrowser verwendete ClientVersion automatisch auf 15.2 umgestellt.

    Aktuelles Setup Exchange2013 CU23 + Exchange2019 CU13 mit alles SU’s bis 06/2023
    Evtl ist es ja hilfreich für jemanden, der ebenfalls auf diese Problematik stößt.

    Antworten
  2. Bei Benutzern mit mehreren Postfächern vom Exchange kommt beim Start von Outlook ein Zertifikatsfehler, da der interne Name verwendet wird (ich vermute beim autodiscover). Wie könnte mann das lösen, ohne bei jedem Bennutzer die zusätzlichen Postfächer erst zu entfernen und wieder einzubinden?

    Antworten
  3. Kann ich die Migration von Exchange 2013 auf 2019 im laufenden Betrieb machen, ohne das die Leute etwas merken? Mein Ziel wäre, dass ich gemütlich eine Woche lang die Postfächer von 2013 auf 2019 händisch verschiebe. Da wäre die Voraussetzung, dass alle Leute welche ihr Postfach noch am 2013er haben, Mails senden und empfangen können. Natürlich sollen parallel die Personen, von denen das Postfach bereits auf den 2019er migriert wurde, ebenso Mails senden und empfangen können. Ist so ein Parallelbetrieb mit dieser Anleitung möglich?

    Antworten
  4. „Wichtig: Alle Einstellungen im Exchange Admin Center werden auf den Exchange 2019 Server durchgeführt. Das Exchange 2013 Admin Center braucht man nicht mehr.“

    Ist das so, sobald man den ersten 2019er installiert hat ? Darf man dann das 2013 nicht mehr benutzen ?

    Danke und Grüße,

    MG

    Antworten

Schreibe einen Kommentar