Vorwort

Diese Anleitung dient zur Vorbereitung einer Postfach-Migration zu Office365.
Postfächer können erst ab Exchange 2016 migriert werden!

Die Anleitung ist nicht allgemeingültig. Die Migrationsanleitung ist lediglich ein Leitfaden. Individuelle Einstellungen müssen sicherlich getätigt werden.

Voraussetzung

  • VM mit Exchange 2010 ist vorhanden und SP3 + UR11 sind installiert
  • VM mit Exchane 2016 ist installiert – Die Installation von 2016 erfolgt ohne die Angabe vom Organisationsnamen
    Wichtig: Exchange 2016 hat nur noch die Rolle des Postfaches, Clientzugriff und Hub-Transport sind aber vorhanden

Die internen und externen Adressen können die gleiche Adresse haben, so müssen sich die Clients nicht anpassen:
Beispiel:

  • URL: EX-MIGRATE.domaene.local
  • Outlook: mail.domaene.de
  • OWA: mail.domaene.de
  • EWS: mail.domaene.de
  • ActiveSync: mail.domaene.de
  • OAB: mail.domaene.de
  • Anywhere: mail.domaene.de
  • Autodiscover: autodiscover.domaene.de

Mittels eines Scriptes können auf dem 2016er Exchange die URLs gesetzt werden. Dafür einfach die obersten 4 Variablen anpassen und das Scipt auf dem Server ausführen.

Script
$servername = "EX-MIGRATE"
$internalhostname = "mail.domaene.de"
$externalhostname = "mail.domaene.de"
$autodiscoverhostname = "autodiscover.domaene.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

Anschließend wird die Authentifizierung für Outlook Anywhere an 2010 angepasst. Die Konfiguration des 2016ers unter Exchange Admin Center > Server > EX-MIGRATE > Outlook Anywhere
sollte so aussehen:

 

Auch gilt es, die Einstellungen zu OWA, ECP, etc. zu überprüfen.  Die Verzeichnisse finden sich unter:
Exchange Admin Center > Server > Virtuelle Verzeichnisse
Im nachfolgenden Bild ist links der alte Server und rechts der 2016er abgebildet. Die Authentifizierung ist identisch. In meiner Testumgebung sind sogar 2 veraltete Exchange-Server 2010, daher sind jeweils drei Einträge zu finden.

 

Zertifikate und IIS-Dienste

Als nächstes kann das alte Zertifikat vom 2010er auf den 2016er importiert werden. Bestenfalls hat man ein Wildcard-Zertifikat, das die Nutzung von Autodiscover deutlich vereinfacht. Das Zertifikat kann auf dem Server mittels MMC.exe aufgerufen werden. Die Zertifikate des lokalen Computers müssen angezeigt werden:

Das Zertifikat kann dann mit Rechtsklick > Alle Aufaben exportiert werden. Auf dem Exchange-Server 2016 kann dann unter Zertifikate (neben den Virtuellen Verzeichnissen) das Zertifikat eingespielt werden. Dafür wählt man den neuen Server aus, klickt auf die drei Punkte und wählt Exchange-Zertifikat importieren aus. Der Pfad zum Zertifikat lokal beginnt mit:

\\localhost\c$\...KEY.cer

Das Zertifikat wird anschließend in dem Exchange Admin Center bearbeitet und den nachfolgenden Diensten zugwiesen:

  • SMTP
  • IMAP
  • POP
  • IIS

Anschließend erfolgt eine Überprüfung der Internetinformationsdiensten. Der Manager wird mithilfe der Suche gestartet und unter
EX-MIGRATE > Sites > Default Web Site / Echange Back End
werden die Bindungen geprüft:

Einträge, die die Adresse 127.0.0.1  (Localhost) beinhalten, müssen entfernt werden. Die obigen Typen http und https müssen das Exchange-Zertifikat ausgewählt haben. Sollten Änderungen im IIS-Manager durcheführt werden, ist es wichtig mittels CMD und iisreset die Dienste neuzustarten.

Sendeconnector und Offline-Adressbuch

Der Exchange 2016 kann nun auch als Sendeconnector hinzugefügt werden, somit laufen auch über dem 2016er Mails.
Dafür suchen wir im
Exchange Admin Center > Nachrichtenfluss > Sendeconnector
den vorhanden Connector und bearbeiten diesen. Unter Bereichsdefinition finden sich die 2010er Server, dort kann über das Plus-Zeichen ein weiterer Server hinzugefügt werden.

 

Auch wird bei Exchange-Installation von 2016 ein neues Offline-Adressbuch erstellt. Dieses muss anschließend noch der 2016er Datenbank (DB) zugewiesen werden:

DNS-Einstellungen

Nach allen obigen Tätigkeiten können zuletzt die DNS-Einstellungen getätigt werden.
Alle Host-A-Einträge, die auf den Exchange 2010 zeigen, müssen auf den neuen Server zeigen. Das bedeutet im DNS-Manager (meistens auf dem Domain-Controller) unter

Forward-Lookupzonen > domaene.de

müssen zwei Host-A-Einträge mit der IP des neuen Servers vorhanden sein:

  • autodiscover
  • mail

Damit die Clients alle neuen DNS-Änderungen checken, muss etwas Zeit vergehen. Alternativ kann man auf den Clients speziell mit einer CMD und „ipconfig /flushdns“ die Einträge flushen. Auch sollte der IIS-Dienst nochmal neugestartet werden.

Troubleshoot

Wie eingehend geschrieben, handelt es sich hierbei um einen Leitfaden. Nachfolgend sind noch ein paar bekannte Fehler beschrieben, die ich bereits vorliegen hatte:

  • Outlook-Anmeldung fehlerhaft – Client versucht sich beim Office anzumelden:

 

Auch beim Erstellen eines neuen Mail-Profils tritt der Fehler auf und es ist nicht möglich, eine Verbindung zum lokalen Exchange aufzubauen. Die interne und externe Adresse des Autodiscovers ist aber korrekt eingestellt.

 

Dieser Fehler tritt bei Outlook-Clients ab 2016 auf. Diese Clients sind von Microsoft so eingestellt, dass der Client immer zum Autodiscover von Office365 zeit (outlook.office.com/autodiscover.xml). Dies kann mittels Gruppenrichtlinie behoben werden. In der GPO unter:

Benutzerkonfiguration > Richtlinien > Administrative Vorlagen > Microsoft Outlook YYYY > Kontoeinstellungen > Exchange

gibt es die Einstellung „AutoErmittlung deaktivieren“. Da muss der rechtsstehende Haken gesetzt werden.

Sollte der Fehler immer noch vorhanden sein, so kann man mittels der GPO noch einen Registry-Key setzen. Dafür habe ich ein Script geschrieben, welches in der GPO als Anmelde-Powershellscript hinterlegt werden muss. Auf dem Client kann anschließend „ipconfig /flushdns“ ausgeführt und Outlook neugestartet werden. Ein neues Profil muss nicht erstellt werden.

Script
New-Item -Path HKCU:\Software\Microsoft\office\16.0\Outlook -Name AutoDiscover –Force
New-ItemProperty -Path HKCU:\Software\Microsoft\office\16.0\Outlook -Name 'ExcludeExplicitO365EndPoint' -Value 1 -PropertyType DWord
  • IIS-Dienste fehlerhaft – keine Verbindung zum Dienst möglich

Dieses Problem tritt im IIS-Manager auf, weil falsche Einträge unter den Bindungen vorhanden sind. Primär geht es dabei um die Site „Exchange Back End“:

 

Die beiden Einträge mit der IP-Adresse 127.0.0.1 (localhost) müssen dabei entfernt werden.

Mittels CMD und „iisreset“ werden anschließend die Dienste neugestartet.