Hallo migrationswillige Admins :),
heute möchte ich auch Aufzeigen wie ich die Migration auf Exchange Server 2016 vornehme. Mein Netzwerk ist wie folgt aufgebaut:
Die meisten von euch werden diese Umgebung bereits kennen. Hier einige Fakten zur Ausgangsituation:
Schritt 1- Exchange 2016 auf neuem Server Installieren
Da Windows Server 2016 (vNext) offiziell noch nicht als Unterstützes Betriebssystem gelistet ist, Installiere ich Exchange 2016 auf Windows Server 2012 R2.
Voraussetzungen installieren
Damit Exchange Server installiert werden kann, muss wie immer einiges an Vorarbeit geleistet werden.
- PowerShell auf dem Exchange öffnen und Features Installieren –>
Install-WindowsFeature Rsat-ADDS,AS-HTTP-Activation, Desktop-Experience, NET-Framework-45-Features, RPC-over-HTTP-proxy, RSAT-Clustering, RSAT-Clustering-CmdInterface, RSAT-Clustering-Mgmt, RSAT-Clustering-PowerShell, Web-Mgmt-Console, WAS-Process-Model, Web-Asp-Net45, Web-Basic-Auth, Web-Client-Auth, Web-Digest-Auth, Web-Dir-Browsing, Web-Dyn-Compression, Web-Http-Errors, Web-Http-Logging, Web-Http-Redirect, Web-Http-Tracing, Web-ISAPI-Ext, Web-ISAPI-Filter, Web-Lgcy-Mgmt-Console, Web-Metabase, Web-Mgmt-Console, Web-Mgmt-Service, Web-Net-Ext45, Web-Request-Monitor, Web-Server, Web-Stat-Compression, Web-Static-Content, Web-Windows-Auth, Web-WMI, Windows-Identity-Foundation
- Auf dem DC’s und dem Exchange .Net 4.5.2 Installieren! (gibt es hier)
- Auf dem Exchange Server die Unified Communications Managed API 4.0 Runtime installieren
Exchange Server 2016 Installieren
Die Installation ist identisch mit der bereits aufgezeigten. Abgesehen von der vergabe des Organisationsnamen, da ja bereits ein Exchange Server in meiner Organisation existiert.
Exchange Server 2016: First Look & Installation
Nach der Installation das System neu starten!
Die Office Web App Server sind nicht zwingend erforderlich! Ich habe diese in meinem Beitrag NICHT berücksichtigt!
Schritt 2 – Koexistenz konfigurieren
Da die Migration, im Regelfalle, nicht nach drei Stunden beendet ist, sondern sich über einen längeren Zeitraum hinzieht, muss nun einiges konfiguriert werden. Wer jedoch darauf tippt, dass, wie früher, erst der Namespace umgezogen werden muss, liegt falsch! Ross Smith hat im Eintrag zu Exchange Server 2016 folgendes geschrieben:
Coexistence with Exchange Server 2013
In Exchange Server 2013, the Client Access server role is simply an intelligent proxy that performs no processing/rendering of the content. That architectural tenet paid off in terms of forward coexistence. When you introduce Exchange Server 2016, you do not need to move the namespace. That’s right, the Exchange Server 2013 Client Access infrastructure can proxy the mailbox requests to the Exchange 2016 servers hosting the active database copy! For the first time ever, you get to decide when you move the namespace over to the new version. And not only that, you can even have load balancer pools contain a mix of Exchange Server 2013 and Exchange Server 2016. This means you can do a one-for-one swap in the load balancer pool – as you add Exchange 2016 servers, you can remove Exchange 2013 servers.
Das bedeutet für mich zunächst „nur“ Zertifikatskonfiguration auf meinem neuem Exchange Server 2016!
Zertifikate konfigurieren
- Auf vorhanden Exchange die EMS öffnen –>
-
Get-ExchangeCertificate | ? {$_.Services -eq "IMAP, POP, IIS, SMTP"}
-
$TB = (Get-ExchangeCertificate | ? {$_.Services -eq "IMAP, POP, IIS, SMTP"}).Thumbprint
-
Export-ExchangeCertificate -Thumbprint $TB -Password (ConvertTo-SecureString -AsPlainText "Password1" -Force) -FileName \\dc\Transfer\EX_Zertifikat\EX_Zert_Export.pfx
-
Import-ExchangeCertificate -Server APP2 -PrivateKeyExportable $true -Password (ConvertTo-SecureString -AsPlainText "Password1" -Force) -FileName \\dc\Transfer\EX_Zertifikat\EX_Zert_Export.pfx
-
Enable-ExchangeCertificate -Services "SMTP,IMAP,POP,IIS" -Thumbprint $TB -Server App2
-
Get-ExchangeCertificate -Server App2 | ? {$_.Services -eq "IMAP, POP, IIS, SMTP"}
-
- Damit ist das Zertifikat auch auf APP2 eingerichtet und konfiguriert.
Outlook Anywhere einrichten
Wie in Bild 2 bereits ersichtlich ist mein Outlook Anywhere für den Server APP1 bereits konfiguriert. Identische Konfiguration muss nun auch für APP2 vorgenommen werden.
- ECP auf Exchange 2016 öffnen –>
- Server –> Server –> APP2 –> Outlook Anywhere
- Internet-Hostnamen & Intranet Hostnamen eintragen (Bild 3)
Sendeconnector konfigurieren
Ich habe einen Sendeconnector (Name: Internet) eingerichtet. Dieser versendet über DNS-MX Einträge Damit ich ausgehenden Nachrichten nicht über den „alten“ Exchange Server 2013 route, bearbeite ich den Sendeconnector entsprechend:
- ECP auf Exchange 2013 öffnen –>
- Nachrichtenfluss –> Sendeconnectors –>
- Den Connector mit einem Doppelklick öffnen –> Bereichsdefinition
- Unterhalb von Quellserver den zweiten Exchange hinzufügen (Bild 4)
- Mit Speichern bestätigen
Virtuelle Verzeichnisse Konfigurieren
Bevor ich den ersten Test ausführe, müssen noch die Virtuellen Verzeichnisse angepasst werden. Das mache ich schnell über die ECP:
- ECP öffnen
- Server –> Virtuelle Verzeichnisse
- Auf den Schraubenschlüssel klicken –> Domäne für externen Zugriff Konfigurieren (Bild 5)
- Den neuen Exchange Server 2016 angeben und die öffentliche Domäne eintragen (Bild 6)
- Speichern
- OWA von APP2 überprüfen, der externe Domänenname ist eingetragen! (Bild 7)
Da bei dieser Aktion das MAPI-Verzeichnis nicht berücksichtigt wird, sollte ich dies ebenfalls anpassen. Generell gilt, alle Verzeichnisse so zu konfigurieren wie die des „alten“ Servers, da die Umgebung darauf eingerichtet ist!
- MAPI Verzeichnis auf APP2 bearbeiten:
Set-MapiVirtualDirectory "APP2\mapi (Default Web Site)" -ExternalUrl https://mail.sichel-it.de/mapi
-
ECP Authentifizierung anpassen – Identisch mit der Konfiguration des „alten“ Servers. Zunächst lasse ich mir die Konfiguration anzeigen, anschließend setze ich diese für den neuen Exchange (Bild 8):
Get-EcpVirtualDirectory | fl *auth*,*id* Set-EcpVirtualDirectory "APP2\ecp (Default Web Site)" -AdfsAuthentication $true -BasicAuthentication $false -DigestAuthentication $false -FormsAuthentication $false -WindowsAuthentication $false
-
Wie zuvor, nur für OWA (Bild 9)
Get-OWAVirtualDirectory | fl *auth*,*id* Set-OWAVirtualDirectory "APP2\owa (Default Web Site)" -AdfsAuthentication $true -BasicAuthentication $false -DigestAuthentication $false -FormsAuthentication $false -WindowsAuthentication $false
-
Anschließend noch die IIS-Dienste durchstarten und die Konfiguration überprüfen (Bild 10):
iisreset /noforce
Postfach für Öffentliche Ordner migrieren
Falls Ihr ein Postfach für Öffentliche Ordner besitzt, wie ich, dann muss dieses Postfach auf den neuen Server Verschoben werden. Solltet Ihr von Exchange Server 2010 kommen, und noch eine Öffentliche Ordner Datenbank besitzen, folgt bitte der Beschreibung aus dem TechNet –> Verwenden der seriellen Migration zum Migrieren von öffentlichen Ordnern zu Exchange 2013 aus vorherigen Versionen
-
Postfächer Verschieben: Get-Mailbox -PublicFolder | New-MoveRequest -TargetDatabase MBX02
- Überprüfung (Bild 11):
Get-Mailbox -PublicFolder
Offline Adressbuch
Anders als in den Vorgänger-Migrationsszenarien (bspw. EX2003 –> EX2010) muss ich Adresslisten usw. nicht auf den neuen Server umziehen bzw. diese Upgraden! Ich kann hergehen und mein Standard Offline Adressbuch der neuen Datenbank zuweisen, ohne das ich es Upgraden muss o.ä. Identisches gilt auch für die Adresslisten.
- ECP öffnen
- Server –> Datenbanken –> Datenbank via doppelklick auswählen
- Clienteinstellungen –> OAB auswählen (Bild 12)
Damit sind alle notwendigen Schritte für einer Koexistenz ausgeführt worden. Ich kann nun beginnen die Benutzer in die neue Datenbank zu verschieben :)
Schritt 3 – Postfächer migrieren
Es ist soweit, ich kann nun erste Benutzer migrieren! Es gibt mehrere Wege zum Ziel, ich nutze die PowerShell :)
# Administratorkonto verschieben New-MoveRequest Administrator -TargetDatabase MBX02 # Verschiebungsvorgang beobachten Get-MoveRequestStatistics Administrator
Ich migriere alle Benutzer- /Raum- /Geräte- Postfächer auf den neuen Server (Bild 13):
Get-Mailbox -Server app1 | New-MoveRequest -TargetDatabase MBX02 -BatchName "Alle Postfächer" Get-MoveRequest -BatchName "Alle Postfächer" | Get-MoveRequestStatistics
Melde ich mich nun wie gewohnt im OWA an, kann ich auf die neue Oberfläche zugreifen (Bild14).
Mein Outlook 2016 hat sich auch wieder verbunden und ich kann auf alle Öffentlichen Ordner zugreifen (Bild 15).
Outlook Anywhere funktioniert weiterhin wie gewohnt, ohne Änderungen in der IT Infrastruktur vorzunehmen (oben erklärt) (Bild 16)
Schritt 4 – Exchange 2013 entfernen
Nun sind alle notwenigen Schritte ausgeführt worden, und ich kann den „alten“ Exchange entfernen. Bevor ich dies allerdings tun kann müssen einige vorarbeiten getätigt werden!
Vorarbeiten Exchange Deinstallation
Der „alte“ Exchange ist derzeit noch als CAS-Proxy im Einsatz. Bedeutet das alle Anfragen über den öffentlichen Namen noch an diesen Server gesendet werden. Sprich, der Namespace sollte umgezogen werden. Loadbalancer / Reverse-Proxy / WAP o.ä. sollten nun auf den neuen Server zeigen.
Ich habe in meiner Umgebung einen Web Application Proxy und muss daher dort tätig werden und die Regeln anpassen (Bild 17).
Anschließend natürlich noch das ADFS-Signing Zertifikat importiert und OWA & Co sind wieder funktionstüchtig, auch ohne den Exchange 2013 :)
Mailbox Datenbank löschen
Um den Exchange 2013 deinstallieren zu können muss die Datenbank gelöscht werden:
- EMS auf APP1 starten –>
- Verbleibenden Mailboxen anzeigen und ggf. Migrieren
Get-Mailbox -Database MBX01
- Arbitration -Postfächer anzeigen lassen und migrieren (Bild 18):
#Listet die entsprechenden Postfächer Get-Mailbox -Database MBX01 -Arbitration #Mirgriert diese Get-MailboxDatabase MBX01 | Get-Mailbox -Arbitration | New-MoveRequest -TargetDatabase MBX02
- Postfachdatenbank löschen (Der Fehler im Bild beruht darauf, dass das löschen der HealthMailboxen nicht mit eingestellt ist –> Exchange 2013 & 2016 Datenbank löschen – HealthMailbox ) (Bild 19)
Remove-MailboxDatabase MBX01
Sendeconnector
Der Sendeconnector muss erneut bearbeiten werden. Damit Exchange sauber entfernet werden kann, darf der zu entfernende Server nicht mehr hinterlegt sein!
Wie oben erklärt nur halt jetzt den Exchange 2013 entfernen (Bild 20)
Deinstallation
Über Programme und Funktionen kann nun der Server deinstalliert werden.
- Anmelden am Exchange 2013 (APP1, „alter“ Server)
- Systemsteuerung –> Programme und Funktionen
- Exchange Server 2013 auswählen und deinstallieren
- Exchange server wird entfernet (Bild 21)
- Analyse der Voraussetzungen sollte ohne Fehler abschließen (Bild 22)
- Exchange Server 2013 wird entfernet (Bid 23)
- Exchange Server 2013 wurde entfernt und erwartet einen Neustart (Bild 24)
- Get-ExchangeServer liefert auch das korrekte Ergebnis (Bild 25)
Für die Migration Exchange Server 2010 –> Exchange Server 2016 Empfehle ich euch die Artikelserie meines Blogger-Kollegen Frank –> Howto: Migration von Exchange 2010 zu Exchange 2016
Damit ist es vollbracht :) Ich hoffe es hilft euch! Bei Fragen nutzt die Kommentarfunktion bitte teilen & liken nicht vergessen ! Danke
Andi
Hallo Andi,
dein Artikel half mir sehr.
Eine kurze Frage, man findet sehr viele Anleitungen für SingleServer. Ist der Weg mit einer DAG so viel anders?
Man müsste doch „nur“ eine DAG daneben stellen, die Schritte befolgen und nachdem die Postfächer umgezogen sind die DAG auflösen und dann die alten Server deinstallieren. Oder???
BTW:
Ich war mal in einem Kurs bei dir…damals mit mein erster.
Im Nachgang kann ich sagen, dass der mit der Beste war…weil bei weitem nicht so trocken rübergebracht wie die Nachfolgekurse bei denen ich war.
Leider hatte ich zu dieser Zeit noch nicht viel mit Exchange zu tun…
Grüße
Toni
Hi Andi,
ganz guter Artikel, der aber hinsichtlich des Themas Namespace Konfiguration in einer 2013 / 2016 Konfiguration mir zu ungenau ist. Da würde ich mir schon mehr Details wünschen. Außerdem fällt mir auf, dass du in deiner Konfiguration keine Split DNS Konfiguration verwendest. Das ist denke ich überhaupt nicht mehr zeitgemäß.
Gruß
Bernd
Hallo Bernd,
danke :) Zu Deinem Wunsch: Namespace-Planung / Konfiguration habe ich nicht bis in’s Detail erörtert, das kann jeder, der Google verwenden kann, auf dem Exchange Team Blog viel besser nachlesen ;)
Ich verwende sehr wohl Split DNS, allein im Bild der WAP-Regeln könntest Du das sehen! Einige Virtuelle Verzeichnisse hatte ich noch nicht angepasst (Asche auf mein Haupt) ;) Ich gebe dir aber recht, es ist nicht Zeitgemäß eine andere Konfiguration zu verwenden!
Andi