Exchange Updates und .NET Service Pack

Exchange nutzt Funktionen des .NET Framework und je nach Version von Exchange sind bestimmte NET-Versionen eine Mindestvoraussetzungen erforderlich. Das führt manchmal zur der Situation, dass man das aktuelle CU erst installieren kann, wenn das richtige NET-Framework installiert ist. Das geht aber nicht, solange die bestehende Exchange Version noch nicht mit dem geplanten NET-Framework harmoniert. Auf der Seite versuche ich die Zusammenhänge und Updatewege zu beschreiben.

.NET Vorgaben

Die erste Information, die sich im Hinterkopf haben müssen ist, dass Exchange Versionen oft mit Windows-Versionen verbunden waren. Damit ist auch eine Version des .NET Framework mit dem Betriebssystem mitgegeben.

Exchange Release Betriebssystem Basis NET Framework

2007

Windows 2008

2.0

2010

Windows 2012

2.0

2013

Windows 2012

4.5

2016

Windows 2016

4.5

Beachten Sie aber, dass NET Frameworks parallel installiert sein können. So können Sie NET 3.5 problemlos zu 2.0 parallel installieren. Das stört kein Programm, welches 2.0 nutzt. Dies gilt aber nicht für alle Framework-Versionen. Wenn eine Software 4.7.1 vorschreibt, dann kann 4.7.0 oder 4.6 eben nicht parallel installiert sein.

Erschwerend kommt hinzu, dass für gewisse Frameworks noch Updates und Hotfixes erforderlich sein können:

Für der Ermittlung der installierten Frameworks können sie folgendes PowerShell-Script nutzen.

Matrix

Ich habe daher versucht aus den verschiedenen Quelle die Matrix zu erstellen, welche Versionen harmoniere und welche nicht möglich sind.

  • nr = Nicht relevant
    Das alte NET-Framework kann installiert sein aber wird nicht genutzt und ist daher nicht weiter relevant
  • Ja = Framework wird genutzt und unterstützt
    Dieses Framework ist für den Betrieb der angegebenen Exchange Version erforderlich
  • Nein = Version des Framework wird nicht unterstützt
    Die Version wird von Exchange nicht genutzt aber darf aufgrund von Änderungen an bestehenden Frameworks auch nicht installiert werden
  • ka = Keine Aussage
    Microsoft sagt nicht, ob es stört oder nicht. Exchange nutzt eine ältere Version und es sollte nicht stören.
    Bei Exchange 2010 ist Net 3.5 erforderlich aber 4.61 darf zusätzlich auch installiert sein.
    https://blogs.technet.microsoft.com/exchange/2016/02/10/on-net-framework-4-6-1-and-exchange-compatibility/
Produkt 2.0 SP1 3.0 3.5 3.5SP1 4.0 4.5 4.5.1 4.5.2 4.6.1
+ Hotfix
4.6.2 4.7.0 4.7.1

2007SP3

Ja

Ja

Ja

Ja

ka

ka

ka

ka

ka

ka

ka

ka

Ex2010SP3

nr

nr

NET 3.5
vorher installieren

Ja

NET 3.5 muss installiert
sein

NET 3.5 muss installiert
sein

ka

ka

ka

ka

ka

ka

Ex2013RTM-CU3

nr

nr

nr

nr

nr

Ja

Nein

Nein

Nein

Nein

Nein

Nein

Ex2013SP1-CU12

nr

nr

nr

nr

nr

Ja

Ja

Ja

Nein

Nein

Nein

Nein

Ex2013CU13

nr

nr

nr

nr

nr

Ja

Ja

Ja

Ja

Nein

Nein

Nein

Ex2013CU15

nr

nr

nr

nr

nr

Nein

Ja

Ja

Ja

Ja

Nein

Nein

Ex2013CU16
Ex2013CU17
Ex2013CU18

nr

nr

nr

nr

nr

Nein

Nein

Nein

Nein

Ja

Nein

Nein

Ex2013CU19
Ex2013CU20
Ex2013CU21

nr

nr

nr

nr

nr

Nein

Nein

Nein

Nein

Ja

Nein

Ja

Ex2016RTM
Ex2016CU1

nr

nr

nr

nr

nr

Nein

Nein

Ja

Nein

Nein

Nein

Nein

Ex2016CU2

nr

nr

nr

nr

nr

Nein

Nein

Ja

Ja

Nein

Nein

Nein

Ex2016CU3
Ex2016CU4

nr

nr

nr

nr

nr

Nein

Nein

Ja

Ja

Ja

Nein

Nein

Ex2016 CU5
Ex2016 CU6
Ex2016 CU7

nr

nr

nr

nr

nr

Nein

Nein

Nein

Nein

Ja

Nein

Nein

Ex2016 CU8
Ex2016 CU9

nr

nr

nr

nr

nr

Nein

Nein

Nein

Nein

Ja

Nein

Ja

Ex2016 CU10

nr

nr

nr

nr

nr

Nein

Nein

Nein

Nein

Nein

Nein

Ja

Sie können schön sehen, dass frühere Versionen von Exchange und NET etwas entspannter zu handhaben waren während mit Exchange 2013/2016 mit NET 4.5 schon sehr enge Korridore vorgegeben sind.

Aber auch beim .NET Framework gibt es weniger gute Versionen. So sind für 4.6.1 noch Hotfixes je nach Betriebssystem (Windows 2012R2=KB3146715, Windows 2012 0=kb3146714, Windows 2008R2 = KB3146716) erforderlich. Allerdings betrifft das nur Exchange 2013 mit sehr alten Versionen

Upgrade und Downgrade

Allerdings sind natürlich bei einem Update die Abhängigkeiten um so mehr zu beachten. Exchange 2013 und Exchange 2016 erfordern je nach CU-Version eine Mindestversion als auch eine Maximalversion. Wie sie an der Tabelle gut sehen, ist Exchange 2016 CU2 nur mit NET 4.5.2 und 4.6.1 unterstützt. Wenn Sie von dieser sehr alten Version auf die im Januar 2018 aktuelle CU8 mit NET 4.7.1 gehen wollen, dann können Sie offiziell nicht den direkten Weg gehen, denn keine Version vor CU8 unterstützt NET 4.7.1 während erste CU8 mit dem Net 4.7.1 arbeiten kann. Genau genommen müssten Sie nun erst auf CU3/4 gehen, damit Sie dann auf NET 4.6.2 gehen um in einem zweiten Schritt über CU8 dann endlich bei NET 4.7.1 landen. Auch Microsoft scheibt dies auf:

Exchange 2013 CU16 and later require .NET Framework 4.6.2. Upgrade your servers to .NET Framework 4.6.2 before you install Exchange 2013 CU16 or you'll receive an error. If .NET Framework 4.5.2 is installed on your Exchange servers, upgrade your servers to Exchange 2013 CU15 before installing .NET Framework 4.6.2.
Quelle: Exchange 2013 prerequisites  https://technet.microsoft.com/en-us/library/bb691354(v=exchg.150).aspx 

Es gibt aber auch einen "Express-Weg", da jedes Exchange 2013/2016 Update eine Vollinstallation ist. Wenn ihr bestehender Exchange Server als "zu alt" für das aktuelle NET-Framework ist, dann bedeutet das ja nur, dass ihr Exchange damit nicht laufen kann. Dann sorgen wir doch einfach dafür, dass Exchange eben nicht damit läuft. Denkbar ist also folgendes vorgehen.

  1. Exchange Dienste beenden
    Damit ist der Exchange Server natürlich erst einmal "down"
  2. Exchange Dienste auf "deaktiviert" stellen
    Damit wird sichergestellt, dass niemand andere die Exchange Dienste im Hintergrund wieder startet. Es gibt Monitoring-Programme, die so eine "Selbstheilung" versuchen. Aber vor allem verhindern wir, dass die Dienste nach einem Neustart des Server wieder starten.
  3. Installation des Ziel NET-Frameworks
    Nun können wir wohl gefahrlos das aktuell gewünschte NET-Framework installieren. Exchange "läuft" ja nicht und wird auch nicht gestartet.
    Dafür wird aber nach der Installation des Frameworks und etwaiger Updates ein Neustart des Servers erforderlich sein. Das ist aber unkritisch, da die Exchange Dienste gestoppt und weiterhin deaktiviert sind
  4. Exchange Dienste wieder aktivieren aber NICHT starten
    Nun stellen wir den Status der Exchange Dienste wieder auf den "alten Wert" ein. In der Regel ist das eben wieder "automatisch". Die Dienste werden aber nicht gestartet und sollten auch nicht gestartet werden, denn nun haben wir ja eine "alte" Exchange Version mit einem zu neuen NET-Framework. Würden die Dienste gestartet, dann würden diese im einfachen Fall einfach wieder abbrechen. Unangenehmer wäre, wenn sie "irgendwie" halb funktionieren und die Umgebung stören oder sogar Daten korrumpieren würden.
  5. Exchange CU installieren
    Damit Exchange auch wieder einen "Supportet"-Status kommt, wird es nun Zeit das aktuelle CU zu installieren. Ehe das Setup von Exchange nun aber die alte Version deinstalliert, merkt es sich noch die "Startart" der Dienste ehe es die Dienste deaktiviert. Daher ist es wichtig, dass wir vorher die Startart im Schritt 4 wieder hergestellt haben. DAs Setup sollte problemlos mit dem aktuellen NET-Framework arbeiten und die alte Exchange Version dann entfernen und die aktuelle und mit dem NET-Framework kompatible Version installieren. Das Setup stellt danach dies am Anfang deaktivierten Dienste wieder auf den ursprünglichen Wert und startet die Dienste. Wenn der ursprüngliche Wert noch ein "deaktiviert" war, dann kann das Setup die Dienste ebenfalls nicht starten und läuft auf einen Fehler.

Dieser Weg "sollte" auch gehen aber ich habe bei Microsoft noch keine entsprechende Beschreibung dazu gefunden. Wer einen "Single Server" hat, sollte sich doch eher an den offiziellen Weg halten. Wer aber mehrere Server in einer DAG betreibt, sollte kein Problem mit dieser Art haben. Im schlimmsten Fall macht man eben eine Recovery-Installation des Servers

Exchange ist hier durch die CU-Verteilung einer Komplettinstallation sicher besser aufgestellt als z.B. Skype for Business. Bei Skype for Business gibt es nur "RUs", also Rollup, die auf dem alten RTM-Installationsimage aufsetzen. Aber auch hier starten die Dienste von Skype for Business nach der Installation nicht automatisch. Sie können also die RTM-Version erst installieren und dann umgehend das letzte Update nachinstallieren um dann mit dem NET-Framework fortzufahren. Erst ganz am Ende, wenn alle Komponenten aktuelle sind, werden die Dienste dann gestartet

Weitere Links