HowTo: Migration Exchange 2016 zu Exchange Server 2019 CU15 (Teil 2)

Im ersten Teil dieser Artikelserie habe ich kurz die Umgebung vorgestellt, mittlerweile ist der Exchange 2019 Server installiert und es kann mit der Konfiguration und der Migration begonnen werden. Im zweiten Teil geht es um die Konfiguration des installierten Exchange 2019 Servers. Hier einmal die Umgebung zur Übersicht:

HowTo: Migration Exchange 2016 zu Exchange Server 2019 CU15 (Teil 2)

Wenn es sich um eine größere Exchange Organisation handelt und eine Exchange 2016 DAG zu Exchange 2019 CU15 migriert werden soll, dann kann die Exchange 2019 DAG nach diesem Artikel erstellt werden. Wenn für die Exchange 2016 Umgebung Kerberos aktiviert war, dann kann jetzt ebenfalls Kerberos für Exchange 2019 mit neuem Alternate Service Account aktiviert werden.

Konfiguration Exchange 2019

Auf dem neuen Exchange Server können zunächst die URLs für die Schnittstellen angepasst werden. Da der Exchange 2019 Server bereits per Autodiscover an Clients im Active Directory verteilt wird, macht es Sinn URLs und Zertifikat zeitnah zu konfigurieren, damit es bei den Clients keine Zertifikatswarnungen gibt. Die Exchange 2019 URLs werden identisch zu den Exchange 2016 URLs konfiguriert. Damit nicht alle URLs manuell angepasst werden müssen, kann dazu ein kleines Script verwendet werden. Im Script müssen nur die entsprechenden Hostnamen für die beiden Exchange Server angegeben werden:

$Exchange2019Server = "EX2"
$Exchange2016Server = "EX1"
#Get URLs from Exchange 2016 Server
$autodiscoverhostname = (Get-ClientAccessService $Exchange2016Server).AutoDiscoverServiceInternalUri
$owainturl = (Get-OwaVirtualDirectory -Server $Exchange2016Server).internalurl
$owaexturl = (Get-OwaVirtualDirectory -Server $Exchange2016Server).externalurl
$ecpinturl = (Get-EcpVirtualDirectory -server $Exchange2016Server).internalurl
$ecpexturl = (Get-EcpVirtualDirectory -server $Exchange2016Server).externalurl
$ewsinturl = (Get-WebServicesVirtualDirectory -Server $Exchange2016Server).internalurl
$ewsexturl = (Get-WebServicesVirtualDirectory -Server $Exchange2016Server).externalurl
$easinturl = (Get-ActiveSyncVirtualDirectory -Server $Exchange2016Server).internalurl
$easexturl = (Get-ActiveSyncVirtualDirectory -Server $Exchange2016Server).externalurl
$oabinturl = (Get-OabVirtualDirectory -server $Exchange2016Server).internalurl
$oabexturl = (Get-OabVirtualDirectory -server $Exchange2016Server).externalurl
$mapiinturl = (Get-MapiVirtualDirectory -server $Exchange2016Server).internalurl
$mapiexturl = (Get-MapiVirtualDirectory -server $Exchange2016Server).externalurl
$OutlAnyInt = (Get-OutlookAnywhere -Server $Exchange2016Server).internalhostname
$OutlAnyExt = (Get-OutlookAnywhere -Server $Exchange2016Server).externalhostname
#Configure Exchange 2019 Server
Get-OwaVirtualDirectory -Server $Exchange2019Server | Set-OwaVirtualDirectory -internalurl $owainturl -externalurl $owaexturl -Confirm:$false
Get-EcpVirtualDirectory -server $Exchange2019Server | Set-EcpVirtualDirectory -internalurl $ecpinturl -externalurl $ecpexturl -Confirm:$false
Get-WebServicesVirtualDirectory -server $Exchange2019Server | Set-WebServicesVirtualDirectory -internalurl $ewsinturl -externalurl $ewsexturl -Confirm:$false
Get-ActiveSyncVirtualDirectory -Server $Exchange2019Server | Set-ActiveSyncVirtualDirectory -internalurl $easinturl -externalurl $easexturl -Confirm:$false
Get-OabVirtualDirectory -Server $Exchange2019Server | Set-OabVirtualDirectory -internalurl $oabinturl -externalurl $oabexturl -Confirm:$false
Get-MapiVirtualDirectory -Server $Exchange2019Server | Set-MapiVirtualDirectory -externalurl $mapiexturl -internalurl $mapiinturl -Confirm:$false
Get-OutlookAnywhere -Server $Exchange2019Server | Set-OutlookAnywhere -externalhostname $OutlAnyExt -internalhostname $OutlAnyInt -ExternalClientsRequireSsl:$true -InternalClientsRequireSsl:$true -ExternalClientAuthenticationMethod 'Negotiate' -Confirm:$false
Get-ClientAccessService $Exchange2019Server | Set-ClientAccessService -AutoDiscoverServiceInternalUri $autodiscoverhostname -Confirm:$false
#Display setttings
Get-OwaVirtualDirectory | fl server,externalurl,internalurl
Get-EcpVirtualDirectory | fl server,externalurl,internalurl
Get-WebServicesVirtualDirectory | fl server,externalurl,internalurl
Get-ActiveSyncVirtualDirectory | fl server,externalurl,internalurl
Get-OabVirtualDirectory | fl server,externalurl,internalurl
Get-MapiVirtualDirectory | fl server,externalurl,internalurl
Get-OutlookAnywhere | fl servername,ExternalHostname,InternalHostname
Get-ClientAccessService | fl name,AutoDiscoverServiceInternalUri

Das Script konfiguriert dann alle Exchange 2019 URLs mit den Werten aus der Exchange 2016 Konfiguration:

Exchange 2019: URLs anpassen

Zum Schluss wird die aktuelle Konfiguration angezeigt:

Exchange 2019: URLs anpassen

Als nächstes wird das Zertifikat vom Exchange 2016 Server exportiert und im neuen Server importiert. Wichtig ist an dieser Stelle, dass das gleiche Zertifikat verwendet wird, damit hier die Extended Protection keine Probleme verursacht. Das entsprechende Zertifikat kann bequem per Exchange Admin Center exprotiert und importiert werden (Diese Funktion wurde wieder eingebaut):

Exchange 2019: Zertifikat übernehmen

Für den Export muss nur ein Kennwort angegeben werden, danach wird das Zertifikat runter geladen:

Exchange 2019: Zertifikat übernehmen

Auf dem Exchange 2019 Server lässt sich das Zertifikat dann importieren:

Exchange 2019: Zertifikat übernehmen

Datei auswählen und Kennwort angegeben:

Exchange 2019: Zertifikat übernehmen

Und den neuen Server für den Import angeben:

Exchange 2019: Zertifikat übernehmen

Zum Schluss werden dem Zertifikat die Dienste zugewiesen:

Exchange 2019: Zertifikat übernehmen

Jetzt können die Connectoren konfiguriert werden. Auch hier können die gleichen Einstellungen wie für die Exchange 2016 Server verwendet werden. Der neue Exchange Server wird zunächst den Sendeconnectoren hinzugefügt, hier muss kein neuer Connector angelegt werden, sondern die bereits vorhandenen Sendeconnectoren werden angepasst:

Exchange 2019: Sendeconector anpassen

Hier wird der neuen Server hinzugefügt, gleiches gilt für evtl. weitere Sendeconnectoren:

Sendeconector anpassen

Damit ist die Konfiguration für den Versand der Mails fertig. Etwas anders sieht es bei den Empfangsconnectoren aus. Die Empfangsconnectoren werden je Server erstellt und müssen daher auf dem neuen Server angepasst werden. Hier macht es Sinn sich beide Server nebeneinander zu legen und Connector für Connector durchzugehen:

Exchange 2019: Empfangsconnectoren anpassen

Insbesondere die Größenbeschränkungen und die Sicherheitsstellungen sollten überprüft und ggf. angepasst werden. Gibt es weitere Empfangsconnectoren auf der Exchange 2016 Seite, werden diese Connectoren auch auf Exchange 2019 Seite erstellt.

Die Größenbeschränkungen werden auch bei der neuen Datenbank wichtig, auch hier müssen die Limits von den Exchange 2016 Datenbanken übernommen werden:

Exchange 2019: Datenbanken anpassen

Hier sollte man auch nicht vergessen, das Offline Adressbuch zuzuweisen:

Datenbanken anpassen

Damit ist die Konfiguration auch schon abgeschlossen. An dieser Stelle bieten sich jetzt die ersten Tests an. Auf einem Client kann in der Hosts Datei die IP für Autodiscover und Webservices auf die IP des Exchange 2019 Server angepasst werden. In meinem Fall sieht es dann so aus:

Test der Einstellungen und Umstellung DNS

Jetzt kann per Outlook die Verbindung getestet und ein paar Mails (intern Postfach zu Postfach, extern ausgehend, extern eingehend) geschickt werden.

Wenn keine Probleme auftreten, können die DNS und Router / Firewall Einstellungen angepasst werden. In internen DNS müssen die IPs für Autodiscover und Webservices angepasst werden:

Test der Einstellungen und Umstellung DNS

Für beide Einträge wird die IP des Exchange 2019 Servers eingesetzt, damit sich alle Clients bereits über den neuen Server zu ihren Postfächern verbinden:

Test der Einstellungen und Umstellung DNS

Je nachdem wie der Exchange Server im Internet erreichbar ist, können jetzt die NAT Einträge für Port 443 (ggf. auch 80) und 25 auf den Exchange 2019 Servern angepasst werden. Falls es vorgelagerte SPAM Filter oder ähnliches gibt, können diese Systeme ebenfalls ihre Mails den den Exchange 2019 Server zustellen. Zugriffe und E-Mail Routing sollten jetzt nur noch zu dem Exchange 2019 Server erfolgen.

An dieser Stelle, kann man jetzt etwas Zeit vergehen lassen, damit auch alle Clients die DNS Änderungen mitbekommen. Die Zeit kann genutzt werden um alle SMTP Clients umzustellen. Drucker, Scanner, MFCs, weitere Geräte und Software nutzen ggf den Exchange 2016 Server um Mails zuzustellen, dies kann nun auf den neuen Server angepasst werden.

Nach der Umstellung bietet es sich an, den „Outlook Conectivity“ Tests vom Microsoft Remote Connectivity Analyzer durchzuführen:

Nächste Schritte

Im nächsten und letzten Artikel dieser Serie wird es dann um die Migration der Daten und die Deinstallation des alten Servers gehen. Sobald der Artikel fertig ist, werde ich diesen hier verlinken.

Schreibe einen Kommentar