HowTo: Installation Exchange 2016 CU8 auf Server 2016

Der vorige Artikel ist mittlerweile etwas älter, daher gibt es an dieser Stelle ein aktualisiertes HowTo zur Installation von Exchange 2016 ab CU8 auf Windows Server 2016. Bei diesem HowTo handelt es sich nicht um das Update einer vorhanden Installation, sondern um eine Neu-/Erstinstallation auf Windows Server 2016. Ein HowTo zur Aktualisierung von Exchange Installationen findet sich hier.

Exchange 2016 kann nur auf Windows Server 2016 mit GUI (Desktop Experience) installiert werden. Server 2016 Core und Nano Server werden nicht unterstützt. Das Active Directory Gesamtstrukturfunktionslevel muss mindestens Windows Server 2008 R2 entsprechen. Ältere Funktionslevel werden nicht mehr unterstützt.

Exchange 2016 CU8 unterstützt .NET Framework in der Version 4.7.1. Neuere NET Framework Versionen können Probleme verursachen und sollten daher nicht installiert werden. Hier gilt es die Exchange Support Matrix zu prüfen.

Windows Server 2016 vorbereiten

Vor der Exchange Server Installation sollte temporär Windows Defender abgeschaltet werden. Es kann sonst zu einer längeren Installationszeit und anderen Problemen kommen:

Installation Exchange 2016 CU8 auf Server 2016

Nach der Exchange Installation kann Windows Defender entsprechend konfiguriert und wieder eingeschaltet werden (siehe unten).

Page File fest einstellen

Die Größe der Auslagerungsdatei sollte fest auf die Größe des Arbeitsspeichers plus 10 MB eingestellt werden. Bei 10 GB RAM (10240 MB + 10 MB) macht das eine feste Größe der Auslagerungsdatei von 10250 MB:

Installation Exchange 2016 CU8 auf Server 2016

Wenn der Exchange Server über 32 GB oder mehr RAM verfügt, gilt als maximale Größe 32778 MB für die Auslagerungsdatei. Bei 64 GB RAM bleibt es also bei 32778 MB für das Page File.

Hinweis: Exchange Server sollten nicht mehr als 196 GB RAM haben, wird Exchange auf physischen Servern betrieben, sollte HyperThreading deaktiviert werden.

Je nach Umgebung und Storage kann es Sinn machen das Page File auf eine separate Disk zu legen. Wenn das Page File wie oben zu sehen auf Laufwerk C: liegt, sollte C: entsprechend groß dimensioniert sein.

Für die Installation von Exchange empfehle ich eine separate Disk zu verwenden. ob es sich dabei nun um eine separate virtuelle Festplatte oder um ein eigenes Array/JBOD handelt, hängt dabei von der Umgebung ab.

Für virtuelle Exchange Server wäre zum Beispiel ein typisches Setup

  • C: VMDK oder VHDX an Controller 1 für das Betriebssystem (~70GB + Page File GB)
  • D: VMDK oder VHDX an Controller 1 für Exchange Installation (150 GB)
  • E: VMDK oder VHDX an Controller 2 für Datenbanken / Logs

Exchange Voraussetzungen installieren

Exchange benötigt einige Windows Features als Voraussetzung für die Installation, diese können bequem per PowerShell installiert werden:

Install-WindowsFeature NET-WCF-HTTP-Activation45, 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

Installation Exchange 2016 CU8 auf Server 2016

Nach der Installation der Windows Features, muss noch die UCMA Runtime 4 installiert werden:

Unified Communications Managed API 4.0 Runtime

Installation Exchange 2016 CU8 auf Server 2016

Exchange 2016 CU8 unterstützt .NET Framework 4.7.1, welches noch nicht Bestandsteil der Windows Server GUI Installation ist. NET Framework 4.7.1 kann entweder über Windows Update installiert werden, oder per Offline Installer. Der entsprechende Download findet sich hier:

Jetzt sollte noch ein Neustart des Servers erfolgen, dann kann mit der Exchange Installation begonnen werden.

Active Directory Schema Update

Bei größeren Active Directory Umgebungen mit mehreren Standorten und AD-Domänen muss das Schema Update für Exchange manuell ausgeführt werden und die vollständige Replikation abgewartet werden.

In kleinen Umgebungen, mit nur einer Domain und am gleichen Standort, kann in der Regel das Schema Update auch durch das Exchange Setup durchgeführt werden.

Um das Active Directory Schema zu aktualisieren und alle Domänen in der Gesamtstruktur vorzubereiten können die folgenden Befehle verwendet werden:

Setup.exe /PrepareSchema /IAcceptExchangeServerLicenseTerms
Setup.exe /PrepareAD /OrganizationName:"ExchangeOrganisationName" /IAcceptExchangeServerLicenseTerms
Setup.exe /PrepareAllDomains /IAcceptExchangeServerLicenseTerms

Nähere Informationen zum Schema Update finden sich hier:

Exchange 2016 installieren

Die Installation ist nach der Vorbereitung einfach, daher gibt es an dieser Stelle nur die Screenshots und wenn nötig einen kurzen Kommentar.

Nach Updates muss in der Regel nicht gesucht werden, wenn bereits das aktuelle CU zur Installation benutzt wird:

Installation Exchange 2016 CU8 auf Server 2016

Installation Exchange 2016 CU8 auf Server 2016

Installation Exchange 2016 CU8 auf Server 2016

Ich wähle an dieser Stelle immer “Empfohlene Einstellungen nicht verwenden”, denn so lässt sich der Pfad der Installation und der Name der Organisation festlegen:

Installation Exchange 2016 CU8 auf Server 2016

Da Exchange 2016 nur noch über die Postfachrolle verfügt (Ausnahme Edge Rolle), muss hier nur die Postfachrolle ausgewählt werden:

Installation Exchange 2016 CU8 auf Server 2016

Die Installation von Exchange führe ich auf dem Laufwerk D: durch. Somit liegen auch keine Logs, Performance Daten, Queues, etc auf Laufwerk C:

Installation Exchange 2016 CU8 auf Server 2016

Hier lässt sich nun der Name der Organisation festlegen:

Installation Exchange 2016 CU8 auf Server 2016

Mit dem eingebauten Schadsoftwarefilter von Exchange habe ich bisher keine guten Erfahrungen gemacht. Ich deaktiviere das Feature daher. Welche Einstellung hier verwendet wird, bleibt jedem selbst überlassen:

Installation Exchange 2016 CU8 auf Server 2016

In kleinen Umgebungen mit beispielsweise nur einer Active Directory Domain und einem Standort kann Exchange Setup das AD-Schema erweitern. In größeren Umgebungen mit mehren Standorten und/oder mehreren Domänen sollte das Schema Update vor der Installation manuell durchgeführt und die komplette Replikation abgewartet werden:

Installation Exchange 2016 CU8 auf Server 2016

Das Exchange Setup benötigt dann etwas Geduld, die Installation eines Servers in meiner Testumgebung dauert immer gut eine Stunde.

Installation Exchange 2016 CU8 auf Server 2016

Nach der Exchange Installation

Nach der Installation muss die Grundkonfiguration von Exchange zeitnah erfolgen. Grund hierfür ist, dass Autodiscover bereits per Active Directory SCP angeboten wird. Da Exchange 2016 nach der Installation noch ein selbst signiertes Zertifikat verwendet, kommt es hier unter Umständen zu Zertifikatsfehlern in Outlook.

Exchange Konfiguration abschließen

Die Grundkonfiguration für eine neue Exchange Installation findet sich hier:

HowTo: Migration von Exchange 2013 zu Exchange 2016

Windows Defender konfigurieren

Windows Defender ist auf Windows Server 2016 per Default aktiviert. Da Exchange Server einige Ausschlüsse vom Virenscanner benötigt, müssen diese entsprechend auch in Windows Defender hinterlegt werden. Gleiches gilt für Virenscanner anderer Hersteller.

Auf dem Exchange Team Blog findet sich dazu folgender Hinweis:

Windows Defender is on by default in Windows Server 2016. Attention to malware settings is particularly important with Exchange to avoid long processing times during installation and upgrade, as well as unexpected performance issues. The Exchange team recommends the Exchange installation and setup log folders be excluded from scanning in Windows Defender and other Anti-Virus software. Exchange noderunner processes should also be excluded from Windows Defender.

Quelle: Exchange Team Blog

Im Technet sind die Ausschlüsse für Exchange 2016 hier dokumentiert:

Die Liste ist allerdings lang, daher hat Exchange MVP Paul Cunningham ein Script veröffentlicht, welches die Ordner, Prozesse und Dateitypen übersichtlich in 3 Dateien einsortiert. Das Script gibt es hier zum Download:

Damit nicht alle Ausschlüsse manuell in Windows Defender eintragen werden müssen, habe ich hier ein entsprechendes Script erstellt, welches die Dateien von Paul’s Script benutzt und die Ausschlüsse per PowerShell zu Windows Defender hinzufügt:

Nachdem die Ausnahmen eingetragen wurden, kann Windows Defender wieder aktiviert werden.

Installation Exchange 2016 CU8 auf Server 2016

Leider hat sich der Windows Defender in der Vergangenheit nicht unbedingt mit Ruhm bekleckert. Ich rate daher dazu den Windows Defender zu deinstallieren, wenn ein anderer Virenscanner installiert wird:

Und bei Fehlern während der Installation?

Während der Installation legt das Exchange Setup sehr detailierte Logs im Verzeichnis “C:\ExchangeSetupLogs” ab. Besonders die Datei “‪C:\ExchangeSetupLogs\ExchangeSetup.log” liefert wertvolle Informationen, wenn die Installation mal schief läuft.

Installation Exchange 2016 CU8 auf Server 2016

Das Log sollte im Fehlerfall in Ruhe durchgegangen werden. Meistens steht im Log sehr genau, warum das Setup fehlgeschlagen ist. Nach der Behebung des Problems kann das Setup neu gestartet werden. Die Installation wird dann an der Stelle weitergeführt, an der es unterbrochen wurde (sofern das Problem behoben wurde).

Hinweis: Bei virtuellen Servern neigt Mancher gerne dazu im Fehlerfall einfach die VM zu löschen und “noch einmal von vorne zu beginnen”. Dies ist im Falle einer abgebrochenen Exchange Installation eher kontraproduktiv, da Setup in den meisten Fällen bereits Einstellungen im Active Directory vorgenommen hat. Hier müsste man dann erst wieder “Leichen” bereinigen. Es ist also sinnvoller, dass oben angegebene Log zu analysieren und das ursprüngliche Problem zu beheben. In der Regel läuft dann auch das neu gestartete Setup durch.

21 Replies to “HowTo: Installation Exchange 2016 CU8 auf Server 2016”

  1. Hallo Frank,

    wenn ich mehrere Standorte mit einer Domäne habe,
    d.h. Standort A – Primary DC – Standort B – Secondary DC usw.
    Und die DC´s anhand von AD Standorte und Dienste an die richtigen Standorte verschoben habe,
    brauche ich dann zur Vorbereitung des AD das PrepAllDomains oder nur das PrepareAD?!?

    Danke

  2. Hi Frank,
    ein Hinweis bzgl. „Exchange Voraussetzungen installieren“: deine Powershell-Zeile ist offensichtlich für eine DAG vorgesehen. Ein einzelner Exchange Server benötigt die „Clustering“-Komponenten nicht.

    LG
    Timbo

  3. Funktioniert nun doch. Scheinbar lag es an Microsoft Unified Communications Managed API Core Runtime (64-Bit). Ich musste es unter dem im Protokoll angegebenen Link herunterladen. Die identische Datei über die Googlesuche funktionierte offenbar nicht.
    Bzw. wurde durch Unified Communications Managed API 4.0 Runtime überschrieben da beide beim Download den gleichen Namen hatten. Hatte ich wohl übersehen dass es auch eine zusätzliche Core Runtime gibt.

  4. Danke nochmal für die immer guten Anleitungen.

    Habe grade ne frische Installation gemacht.
    Dabei hat Exchange trotz Installation nach E:\Exchange doch etliches nach C: (Windows) und D: (Auslagerung) installiert.

    Für EdgeSyncService Logs:
    Get-EdgeSyncServiceConfig | Set-EdgeSyncServiceConfig -LogPath “ E:\Exchange\TransportRoles\Logs\EdgeSync“

    D:\AdvancedDataGovernanceLogs soll man mit
    in %ExchangeInstallPath%Bin\EdgeTransport.exe.config abschalten können.
    ActiveMonitoringTraceLogs in C:\Program Files\Microsoft\Exchange Server\V15\Logging\Monitoring (warum der Default-Installpath??) in %ExchangeInstallPath%Bin\MSExchangeHMHost.exe.config
    .
    Allerdings funktioniert dies beides nicht – die Logs bleiben wo sie sind… :-|

    @Franky: wolltest Du nicht mal zu Logs machen? Selbst die Logs unter E:\Exchange sind in diversen Verzeichnissen. Das scheint alles Kraut und Rübe. Es gibt Logs in Logging, Logs, TransportRoles, etc. Ich sehe ja ein, dass Logs bei Problemen hilfreich sind, aber der Wahnsinn seit Exchange 2013 ist unerträglich und meiner Ansicht nach unsinnig!

  5. Hi,

    ich ziehe meine Aussage von 10. Januar 2018 um 13:28 zurück. Nach der Installation von Exchange sind die Komponenten wieder da. MS sieht es wohl auch so wie du immer alles zu installieren was Exchange irgendwann mal benötigen könnte.

    Wegen mir kannst du den alten Beitrag löschen, verwirrt sonst nur.

    LG
    Timbo

  6. Hi Nathan,
    ich mag die Logs, lieber ein Dienst der „zu viele“ Logs schreibt (Ansichtssache), als ein Dienst der keine Logs erstellt. Im Fehlerfall ist man dankbar, wenn Logfiles Hinweise auf das Problem liefern können. Die Pfade der Logs lassen sich anpassen, manchmal über die Config Dateien, manchmal über die Shell. Bei Gelegenheit schreibe ich einen kleinen Artikel dazu.

    Zu deinem Problem:
    Du musst die Log Pfade in den 3 Dateien (MSExchangeHMHost.exe.config, MSExchangeHMRecovery.exe.config, MSExchangeHMWorker.exe.config) anpassen und danach die Dienste „Microsoft Exchange-Integritätsdienst“ und „Microsoft Exchange-Integritäts-Manager-Wiederherstellung“ neu starten. Die Logs für EdgeSync liegen bei mir schon im richtigen Pfad, da musste ich nichts anpassen.

    Gruß,
    Frank

  7. Hi Frank,
    an sich läuft alles gut bei mir, aber wenn vor der Bereitschaftsprüfung beim Setup vom Exchange Server kommt bei mir eine Fehlermeldung das bei mir die IWindows Komponente Server Gui Mgmt nicht installiert ist obwohl ich es wie 1:1 gemacht habe wie du.
    Könntest du mir sagen was fehlt.

    LG Max

  8. Hi Frank,

    ich will gerade einen zweiten Exchange an einem zweiten Standort installieren

    Erster Standort hat Exchange und AD (IP xxx.xxx.xx1.220 )
    Zweiter Standort nur AD ( IP xxx.xxx.x10.X15 )

    Bei Bereitschaftsüberprüfung bekomme ich die Fehlermeldung:
    Dieser Computer gehört nicht zu einem gültigen Active Directory-Standort. Überprüfen Sie die Standort- und Subnetzdefinitionen.
    Woran hängt es?

    LG Eugen

  9. Hallo Eugen,
    Exchange setzt einen schreibbaren Domain Controller am AD-Standort voraus. Du musst also an deinem zweiten Standort auch einen Domain Controller (kein RoDC) installieren.
    Gruß,
    Frank

  10. Hallo Frank,

    muss Active Directory Schema Update direkt auf dem Active Directory gemacht werden?

  11. Hallo Eugen,
    das Schema Update muss nicht direkt auf dem Domain Controller durchgeführt werden. Der Benutzer, der das Update durchführt, muss allerdings Mitglied der Gruppe Schema Administratoren sein.
    Gruß, Frank

  12. Ich habe gestern 2x (virtuell) Server 2016 Standard (GUI) mit NetFramework 4..7.1 (NDP471-KB4033342-x86-x64-AllOS-ENU.exe), allen Updates und anschließend Exchange 2016 CU8 installiert. Nach der Installation und dem ersten Neustart konnte jedoch der Dienst „Net.Tcp-Listeneradapter“ nicht gestartet werden, was dazu führte das sämtliche Exchange Dienste ebenfalls nicht starteten. Eine kurze Recherche bei Tante Google ließ mich dann 4.7.1 deinstallieren und 4.7.0 (NDP47-KB3186497-x86-x64-AllOS-ENU.exe). Seit dem startet der Exchange so wie er soll.

    Kann das jemand bestätigen oder weiß wo das Problem liegt?
    Ein manueller Start des Net.Tcp-Listeneradapter Dienstes nach System-Start mit 4.7.1 war übrigens problemlos möglich.

  13. Eine CU8 Installation auf einem neuen Server hat bei mir den Dienst ‚Microsoft Exchange-Postfachtransportzustellung‘ (MSExchangeDelivery) als ‚NT-AUTORITÄT\NETZWERKDIENST‘ gestartet. Woraufhin der Dienst nicht gestartet werden konnte, bzw. immer wieder abgeschmiert ist und keine Mails zugestellt wurden. Der Dienst mit ‚Lokales System‘ läuft einwandfrei.
    Das Problem ist bei einer Migration aus Exchange 2013 aufgefallen.
    Auf einem anderen einzelnen Exchange 2016 CU8 läuft MSExchangeDelivery problemlos als ‚NT-AUTORITÄT\NETZWERKDIENST‘.
    Sehr merkwürdig….

  14. Der Dienst ‚MSExchangeTransport‘ war nach Installation ebenfalls auf ‚NT-AUTORITÄT\NETZWERKDIENST‘ eingestellt. Daher konnte auf die Warteschlangen nicht zugegriffen werden (Get-Queue liefert dann meist Fehler) und Nachrichten wurden immer noch über den (migrierten) Exchange 2013 zugestellt. Nachdem dieser nun deinstalliert wurde kamen keine Nachrichten mehr durch.
    Umstellung ‚MSExchangeTransport‘ auf ‚Lokales System‘ und alles war gut.

  15. @Thorsten Reinert
    ich wollte meine Test AD auch mal auf den neusten Stand bringen und habe mich für eine Neuinstallation entschieden. Also schön nach Franks Anleitung installiert (Danke Frank, Du machst es echt Klasse!), und stellte das gleiche Verhalten fest, nach dem Reboot keiner der Exchange Dienst außer dem Diagnose Dienst ist gestartet. In der Log ist ersichtlich dass der Microsoft Exchange Acive Directory Topologie Dienst wegen der Abhängigkeit zum NetTCP Portfreigabedienst nicht gestartet weren konnten und die restlichen Exchange Dienste entsprechend auch nicht hochkommen.
    Ich habe in dem Testnetz leider kein Internetzugang somit mußte ich den .NET Offline Installer nehmen.
    Als ich Dein Kommentar gelesen habe, habe ich heute alles noch mal von Grund neu installiert und habe den 4.7 Offline installer genommen exakt den gleichen den Du beschreibest, allerdings ist der Fehler geblieben.

    Wenn ich den Net TCP Freigabedienst manuell starte, dann geht es ohne Fehler und dann lassen sich auch alle Exchange Dienste starteten. Also muss ich wohl noch etwas googeln
    VG Eddie

  16. Kleiner Nachtrag:
    den genauen Fehler konnte ich noch nicht lokalisieren, laut den Logs antwortet der Dienst NETTcpPortSharing innerhalb von 30000ms nicht und daher werden die Exchange Dienste nicht gestartet da einer zum anderen in Abhängigkeit steht.

    Da ich nicht ausschließen kann, dass es daran liegt dass einfach nur die HDD zu lahm ist und die VM daher nicht schnell genug startet, habe ich mit folgendem Registry Key ein Workaround gemacht:
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control den Dword Key: ServicesPipeTimeout mit dem Wert 180000 angelegt.
    Seitdem läuft alles.
    Wenn ich wieder mal Zeit habe, und finde woran es genau liegt, dass der Dienst nicht antwortet, gebe ich hier noch mal Bescheid.
    VG Eddie

  17. Hallo,
    zunächst Danke fürd en tollen Artiekl.

    Heute habe ich mit dem CU9 habe ich (trotz mehrfacher versuche und langer Bastelei) immer wieder Error im Schritt 7 von 14 (Postfachrolle: Transportclient). Single-DC, Single EX-Server.


    "System.Exception: Unable to set shared config DC.
    bei Microsoft.Exchange.Configuration.Tasks.Task.ThrowError(Exception exception, ErrorCategory errorCategory, Object target, String helpUrl)
    /

    Das ExchangeSetup.log meint dazu knapp: Unable to set shared config DC.
    Leider finde ich keinerlei Ursache, auch nach intensiven "geguuugel" nicht. Haben mehrere Seiten aber den richtigen "bringer" findet man dazu nicht.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.