Exchange 2016 Installation

Microsoft Consultant Exchange & Skype for Business (m/w)
Kommen Sie zu Net at Work. Wir haben spannende Projekte bei innovativen Kunden. Unser Team arbeitet kollegial und kooperativ – ständiger Austausch und Weiterbildung sind bei uns Standard.
http://www.netatwork.de/karriere

Es gibt wahrlich genug Videos und bebilderte Schritt für Schritt Anleitungen für die Installation von Exchange 2016 und der Assistent tut sein übrigens. Daher beschränke ich mich hier auf die Zusatzinformationen, die ich in meinem täglichen Betrieb gesammelt habe. Die Seite wird also dauern erweitert.

Vorüberlegungen

Sicher haben Sie die verschiedenen Webcasts und Vorträge von Microsoft schon geschaut oder sogar schon die Anleitung zur Migration und Installation überflogen. Fakt ist, dass Exchange 2016 nicht wirklich eine große neue Version ist, was schon an der Version 15.1  zu 15.0 (bei Exchange 2013) zu sehen ist. Auch die Vereinigung der bei Exchange 2013 noch getrennten "Frontend/Backend"-Rollen war schon mit Exchange 2013 empfohlen. Und dass beide (2013 und 2016) sich gegenseitig die Benutzerzugriffe als Proxy zuweisen können zeigt die Nähe. Die Datenbank ist also auch fast gleich. Dennoch hat ich einiges getan, so dass ein Update gut überlegt und geplant sein will. Hier ein paar Stichpunkte:

  • Kein MAPI/RPC mehr
    Diese Einschränkung galt natürlich schon mit Exchange 2013. Und selbst RPC/HTTP ist schon wieder abgekündigt. Das neue Protokoll ist MAPI over HTTP. Mein Tipp, der schon seit Exchange 2013 galt: Stellt vor der Migration der Postfächer die Clients schon mal auf RPC/HTTP um, besser gleich auf MAPI/HTTP, wenn die Clients das können (Hotfix erforderlich), dann sind etwaige "Probleme" mit HTTP-Proxies, Zertifikaten, Firewalls, WAN-Optimizer vorab schon bekannt und gelöst und nicht akut, wenn ihr schön beim Migrieren der Postfächer seid.
    Kleiner Nebeneffekt, Über RPC/HTTP und MAPI/HTTP kann man wunderbar im IIS verschiedene Auswertungen machen.
    Aber es zumm zuerst aktiviert werden und das sollte nicht ohne Planung passieren. Siehe auch Outlook/HTTP
  • Alte Clients aussondern:
    So unterstützt Exchange 2016 kein Outlook 2007 mehr. Hier ist es wichtig zu prüfen, dass wirklich alle Clients dann schon mit dem neuen Server arbeiten können. Wird einer vergessen, dann kann man dem Anwender zumindest OWA, bzw. der neue Begriff ist "Outlook on the Web" anbieten, bis sein Client aktualisiert wurde
  • Neuer Server macht gleich Autodiscover -> Zertifikate oder eigene Site
    Beachten Sie, dass jeder neue Exchange Server sich im Active Directory Einträge (Stichwort InternalURL, ExternalURL, AutodiscoverURL) und Clients diesen dann auch finden, selbst wenn er noch nicht richtig fertig installiert ist und vor allem er noch kein passendes Zertifikat hat. Microsoft schlägt hier den Einsatz einer eigenen AD-Site (mit einem eigenen DC) für die Exchange Installation vor, und den Server nach der Anpassung der URLs und des Zertifikats umzuhängen. Kleiniere Firmen werden dies eher einsparen und den Moment möglichst kurz halten. Sie können ja einfach den IIS stoppen oder den Zugriff per Windows Firewall blocken, bis Sie soweit sind.
  • Platz: ca. 10 GB für Installation
    In der Produktion sollte so ein Limit nicht wirklich ein Problem darstellen. Das ist also eher ein Hinweise für VMs in Testumgebungen, dass die Disks hier nicht zu knapp dimensioniert sein dürfen.
  • Windows 2008 Forest Mode
    Das bedeutet, dass alle Domain Controller auf Windows 2008 oder höher installiert sind und sie auch den Forestmode auf Windows 2008 angehoben haben. Das bedeutet natürlich auch, dass auch alle Domänen auf Windows 2008 Domain Mode sind. 7 Jahre nach dem Release von Windows 2008 und aufgrund des Support-Ende von Windows 2003 bin ich relativ sicher, dass heute alle Firmen schon den Windows 2008 Mode für Domänen und Forests nutzen oder darauf wechseln können.
  • Offline Adressbuch
    Exchange 2016 legt ein neues Offline Adressbuch an, welches als "Default" definiert wird. Wer bei den vorhandenen Exchange Datenbanken noch kein OAB fest hinterlegt hat, zwingt danach alle Clients zu einem Download des "neuen" Adressbuchs. Daher sollten Sie bei jeder Exchange Datenbank statisch das bisherige Adressbuch eintragen und später die neuen Datenbanken das neu angelegte Exchange 2016 Adressbuch nutzen. So werden mit der Migration des Postfachs die Client einzelne auf das neue Adressbuch umgestellt.
  • MAPI/HTTP
    Auch wenn Exchange 2016 per Default "MAPI/HTTP" aktiviert, passiert dies nicht bei einer Migration, wenn die vorhandenen Exchange Server noch nicht mit MAPI/HTTP freigeschaltet wurden. Wie schon beim Wechsel nach Exchange 2013, mit dem MAPI/TCP entfallen ist, rate ich zu einer Umstellung des Client Zugriffs vor der Installation der Server. Dann nutzen alle Clients schon den neuen Weg und bei der Migration reduziert sich das Risiko, dass erst dann ein untauglicher Client auffällt

Weitere Hinweise addiere ich so, wie ich weitere Exchange 2016 Server installiere. Natürlich gelten auch weiter die Seiten von Microsoft zu den Voraussetzungen für die Umgebung und den Server selbst:

Alternativ können Sie eine der folgenden Zeilen verwenden:

#Requirements fuer Mailbox Server auf Windows 2012R2
Install-WindowsFeature `
   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, RSAT-ADDS

#Requirements fuer Edge-Server
Install-WindowsFeature ADLDS

# Requiements fuer Management Station
# Angeblich keine weiteren Windows Features ausser .NET-Framework. Das Exchange Setup addiert aber dennoch folgende Features
Add-WindowsFeature `
   Web-Mgmt-Console, Web-Metabase, Web-Lgcy-Mgmt-Console, `
   NET-Framework-45-Features, RSAT-ADDS-Tools, `
   Server-Gui-Mgmt-Infra, Windows-Identity-Foundation

Bitte prüfen Sie, welche .NET-Framework-Version und Powershell erlaubt sind. Für die Server ist zudem noch die UCMA 4.0 ( https://www.microsoft.com/de-de/download/details.aspx?id=34992) zu installieren.

Installationsprozess

Ein Assistent führt sie beim einfachen Start des Setup durch die Installation. Sie können natürlich das Setup per Kommandozeilen steuern. Das ist für große und automatisierte Installationen wichtig. Die meisten Installationen dürften aber über die GUI erfolgen.

  • Suche nach Updates
    Zuerst können Sie das Setup nach Updates bei Microsoft suchen lassen. Schon länger bauen Hersteller solch eine Funktion ein, um ggfls. ein aktuelleres Installationsskript nachzuladen. Software hat immer Fehler und wenn ein Hersteller diese abstellt ist das um so besser
  • Lizenzen
    Die obligatorische Frage nach der Lizenz und den Verträgen müssen Sie natürlich bestätigen.
  • Auswahl der Rollen
    Aber dann sind Sie schon bei der Auswahl der Rollen. Bei Exchange 2016 ist das ziemlich überschaubar geworden. genau genommen können Sie nur zwischen Mailbox Rolle und Edge Rolle wählen. Diese beide Rollen schließen sich gegenseitig aus aber installieren beide die Management Tools verpflichtend mit. Insofern bliebe als dritte Option nur noch die Installation der Management Tools alleine.
  • Zielverzeichnis
    Platzbedarf, ca. 9 GB
    c:\programm Files\Microsoft\Exchange Server\V15
  • Name der Organisation (sofern noch nicht vorhanden)

    Interessant. Bei mir konnte ich den Orgnamen ändern - sehr suspekt
  • MalWare Setup
    Wird per Default installiert aber kann hier "deaktiviert" werden.
  • ReadnessCheck
    Hier aktiviere ich die Installation erforderliche Voraussetzungen. Aber das entbindet sie nicht von der Bereitstellung einiger Voraussetzungen, wie es eine ganze Menge offener Punkte und Warnungen in meinem Lab zeigen.
    • Error:RSAT-ADDS Feature fehlte
      Das braucht das Setup, wenn das Schema erweitert werden muss und ich kein "SETUP /PrepareAD" auf einem DC machen will. Interessant nur, dass das Exchange Setup dieses Feature nicht alleine mit installiert.
    • Error:UCMA 4.0
      Für die UM-Funktion ist dieses Modul erforderlich, welches aber nicht zu Exchange oder Windows gehört und daher vom Administrator doch manuell installiert werden muss
    • Error:Exchange 2013 SP3
      Und natürlich hatte mein Exchange 2013 Server noch nicht das allerletzte Update bekommen.
    • Warning: Kein Exchange 2010 Fallback
      Ich habe keine Exchange 2010 Server. Wenn ich nun Exchange 2016 installiere, kann ich nie mehr welche nachinstallieren. Bei mir ist das kein Problem. Der Hinweise aber ist wichtig
    • Warning: Sendconnector mit "*"
      In meinem Lab habe ich keinen Versand ins Internet konfiguriert. Interessant aber doch, dass das Setup dies prüft und warnt. Diese Meldungen sollten sie in einer produktiven Umgebung nicht sehen
    • MAPI/HTTP
      Meine Exchange 2013 Umgebung war hier noch nicht für MAPI/HTTP aktiviert. Das Setup rät mir dazu, denn mit dieser Ausgangssituation wird auch auf Exchange 2016 kein MAPI/HTTP aktiviert. Siehe dazu auch MAPI over HTTP
  • Installation
    In meinem Fall, eine Test-VM für die MSXFAQ) ist dann die Installation ohne weitere Rückfragen durchgelaufen. Je nach Hardware dauert das einige Minuten. Bei mir wurde am Ende auch ein Neustart angefordert, den ich aber erst mal etwas verzögert hatte.

Kontrolle und Fixen

Es ist mir nun schon mehrfach  passiert, dass die Installation auf dem Papier "sauber" durchgelaufen ist, aber doch nicht fehlerfrei war. Ein Blick in das Exchange Server Setup.log und das Eventlog ist ratsam. Folgende Fehler hatte ich:

  • PerformanceCounter nicht registriert.
    Das Installieren der Performance Counter scheint aufgrund der erforderlichen Zeit manchmal nicht zu klappen. Das sieht man daran, dass im Eventlog Fehler diesbezüglich escheinen. Bislang hat es geholfen, die Performance Counter noch mal zu registrieren. Dieser Prozess hat auch schon mal über 2 Stunden gedauert. Bitte etwas Geduld.
Log Name:      Application
Source:        MSExchange Common
Date:          10/8/2015 1:46:10 PM
Event ID:      106
Task Category: General
Level:         Error
Keywords:      Classic
User:          N/A
Computer:      ex2016.msxfaq.net
Description:
Performance counter updating error. Counter name is Process ID, 
category name is MSExchangeRemotePowershell. Optional code: 2. 
Exception: The exception thrown is : System.InvalidOperationException:
 The requested Performance Counter is not a custom counter, it has to be initialized 
as ReadOnly.
   at System.Diagnostics.PerformanceCounter.InitializeImpl()
   at System.Diagnostics.PerformanceCounter.get_RawValue()
   at Microsoft.Exchange.Diagnostics.ExPerformanceCounter.get_RawValue()
Last worker process info : System.ArgumentException: Process with an Id of 7900 is 
not running.
   at System.Diagnostics.Process.GetProcessById(Int32 processId)
   at Microsoft.Exchange.Diagnostics.ExPerformanceCounter.GetLastWorkerProcessInfo()
Processes running while Performance counter failed to Update: 
::::
# Exchange Powershell als Admin starten
Add-PSSnapin Microsoft.Exchange.Management.PowerShell.Setup
Get-ChildItem "$exInstall\Setup\Perf" `
   | Where-Object {$_.Name -match ".xml"} `
   | Foreach { 
         Write-host "Importing " $_.fullname
          New-PerfCounters -DefinitionFileName $_.FullName
      }
  • Angeblich fehlende Assemblies
    Ein weiterer Fehler erkennt man an Eventlogs (EventID 1309 oder EventID 1310) zum Thema RPCHTTP-Proxy oder CAS, dass angeblich bestimmte DLLs nicht geladen werden können. Die DLLs sind aber da nur hat das Setup bei der Installation vergessen eine Shared.Web.Config.Config"-Datei in das entsprechende Verzeichnis im IIS zu kopieren. Auch hier hilft ein kurzer Befehlszeilenaufruf (Dauer ca. 5 Minuten9 gefolgt von einem IISReset:
Log Name:      Application
Source:        ASP.NET 4.0.30319.0
Date:          10/8/2015 8:38:41 AM
Event ID:      1310
Task Category: Web Event
Level:         Warning
Keywords:      Classic
User:          N/A
Computer:      ex2016.msxfaq.net
Description:
Event code: 3008 
Event message: A configuration error has occurred. 
Event time: 10/8/2015 8:38:41 AM 
Event time (UTC): 02/8/2015 7:38:41 AM 
Event ID: 51a90e69328440b3bd9e6b403af7ebb8 
Event sequence: 1 
Event occurrence: 1 
Event detail code: 0 
 
Application information: 
    Application domain: /LM/W3SVC/2/ROOT/Rpc-7483-13094033954 
    Trust level: Full 
    Application Virtual Path: /Rpc 
    Application Path: C:\Windows\System32\RpcProxy\ 
    Machine name: EX2015 
 
Process information: 
    Process ID: 9592 
    Process name: w3wp.exe 
    Account name: NT AUTHORITY\SYSTEM 
 
Exception information: 
    Exception type: ConfigurationErrorsException 
    Exception message: Could not load file or assembly 'Microsoft.Exchange.Security,
        Version=15.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one 
        of its dependencies. The system cannot find the file specified. 
       (C:\Windows\System32\RpcProxy\web.config line 38)
 ... gekürzt 
REM- Befehlszeile zur Lesbarkeit umgebrochen. Bitte in einer Zeile iengeben
REM nur die Zeile aufrufen, deren CONFIG-Datei nicht vorhanden ist.

cd C:\Program Files\Microsoft\Exchange Server\V15\Bin

DependentAssemblyGenerator.exe 
   -exchangePath "%ExchangeInstallPath%\bin" 
   -exchangePath "%ExchangeInstallPath%\FrontEnd\HttpProxy" 
   -configFile "%ExchangeInstallPath%\FrontEnd\HttpProxy\SharedWebConfig.config"
 
 
DependentAssemblyGenerator.exe 
   -exchangePath "%ExchangeInstallPath%\bin" 
   -exchangePath "%ExchangeInstallPath%\ClientAccess" 
   -configFile "%ExchangeInstallPath%\ClientAccess\SharedWebConfig.config"
 

Wenn ich weitere "häufige" Fehler finde, werde ich diese hier ergänzen.

Konfiguration CAS-Funktion - hurtig bitte

Wie in den Voraussetzungen schon geschildert hatte, ist nach der Installation ein Exchange 2016 Server in ihrem Netzwerk aktiv, der sich im Active Directory auch mit seiner CAS-Funktion eingetragen hat und von den Clients "gefunden" wird. Auch Clients die per "Autodisover" einen anderen alten Exchange CAS-Server fragen, bekommen ggfls. diesen neuen Server als Antwort, es seid denn die haben den Server in einer eigenen Site installiert.

Das Problem dabei ist, dass der Server anfangs ein "selbstsigniertes Zertifikat" hat, dem die Clients nicht vertrauen. Wenn also ein Client per HTTPS diesen neuen Server anspricht, bekommen die Clients eine Zertifikatswarnung. Bei den meisten kleinen Firmen wird dies kein echtes Problem sein, wenn die Umstellung zu einer Zeit passiert, wenn die Anwender nicht sehr aktiv sind. In größeren Firmen bedeuten aber auch solche Warnung gleich viele Helpdesk-Anrufe, die letztlich Aufwand bedeuten. Wer hier also perfekt sein will, sollte vorbereitet sein.

  • Richtiges Zertifikat vorab einspielen
    Aus meiner Sicht ist das der eleganteste Weg: Sie fordern schon ein Zertifikat mit den richtigen Namen auf dem Server an, noch ehe Exchange installiert wird. Dann liegt schon ein richtiges von den Clients vertrautes Zertifikat vor, welches von Exchange beim Start genutzt werden kann.
  • Zugriff der Clients unterbinden bis das richtige Zertifikat eingespielt ist
    Die zweite Option wäre, den Zugriff der Clients auf den Server solange zu unterbinden, solange noch keine Zertifikate installiert und gebunden sind. Das kann schnell passieren, indem man z.B. die Webseite beendet, deren Default Port temporär ändert oder über die Windows Firewall oder andere Filter den Zugriff verhindert.
  • CAS-URLs schon während der Installation ändern.
    Ein dritter Weg besteht darin, schon während der Installation von einem anderen Exchange Server aus gleich die CAS-URL anzupassen. Damit wissen die anderen CAS-Server, die bislang noch auf "autodiscover.<maildomain>" reagieren nichts mehr von dem FQDN des neuen Servers und geben diesen so auch nicht mehr an die Client heraus. Das ist aber leider nicht so einfach, da die entsprechenden Objekte im Active Directory erst ganz am Ende der Installation angelegt werden. Insofern geht das nicht richtig schnell.

Mein Favorit ist die Anforderung und Installation eines Zertifikats schon vor der Installation.

Konfiguration Connectoren

Der Server bedient kann natürlich schon Clients bedienen aber speziell mit POP3/IMAP4 Clients oder Connectoren zu 3rd Party Systemen sollten sie die erforderlichen Connectoren anlegen. Die Send-Connectoren lassen sich recht einfach auch auf den neuen Exchange Server ausdehnen. Ein Send-Connector ist eine globale Konfiguration, in der einfach der neue Server als "Source Transport Server" addiert werden muss.

Etwas aufwändiger ist hier die Konfiguration der Receive Connectoren, zumindest wenn ihre bisherigen Server nicht nur die zwei Standard Connectoren für Serverkommunikation (Port 25/TCP) und Clientkommunikation (Port 576/TCP) benötigen. Oft gibt es ja Verbindungen zu anderen Mailsysteme, ERP-Systemen, Gateways wie z.B. Fax-Servern oder Sharepoint, die "eigene Berechtigungen" benötigen. Dann muss man natürlich die Konfiguration dieser Connectoren quasi 1:1 mit Ausnahme der Listen-IP auf den neuen Server übertragen. Das können Sie manuell machen, oder sie nutzen die Powershell. Entsprechende Beispiele gibt es schon viele dazu.

Konfiguration Loadbalancer

Damit sollte die wesentliche Konfiguration des Servers bezüglich der CAS-Funktion und Transport-Funktion abgeschlossen sein. Wenn Sie den Server auch sonst ordentlich konfiguriert und mit Windows Updates, Virenscanner, Backup und Monitoring versehen haben, können Sie diesen dann als weiteren "RealServer" im Loadbalancer eintragen oder als weiteren A-Record im DNS beim Einsatz von Round Robin). Wenn der Server zusätzlich aber noch Datenbanken betreiben soll, dann sollten Sie diese Freischaltung für Clients vielleicht noch etwas zurück stellen, bis auch die Konfiguration der DAG erfolgt ist.

Konfiguration Mailboxen

Auf die Konfiguration der Postfachdatenbanken eines einzelnen Server oder eines Servers in einer DAG gehe ich hier nicht weiter ein. Es hat sich im Vergleich zu Exchange 2010 und 2013 hier nicht wirklich viel verändert. Wenn ich im laufe der nächsten Projekte allerdings auf Besonderheiten stoße, dann werde ich diese Seite erweitern.

Migration

Die Migration nach Exchange 2016 ist sehr stark mit der Migration nach Exchange 2013 verwandt. Das ist sicher auch damit zu erklären, dass Exchange 2016 keine komplette Version "16" sondern nur eine 15.1 ist. Natürlich gibt es wieder die üblichen "Mindestversionen", d.h. dass der Forest-Mode nun Windows 2008 oder höher sein muss und Outlook 2007 nicht mehr unterstützt wird. Aber alle andere Schritte sind fast uneingeschränkt weiter gültig.

Weitere Links

Microsoft Consultant Exchange & Skype for Business (m/w)
Kommen Sie zu Net at Work. Wir haben spannende Projekte bei innovativen Kunden. Unser Team arbeitet kollegial und kooperativ – ständiger Austausch und Weiterbildung sind bei uns Standard.
http://www.netatwork.de/karriere