Ungewollte .NET Installation auf Exchange Server

Exchange

Das .NET Framework ist ein integraler Bestandteil für viele Anwendungen unter anderem auch für Exchange Server. Für die Installation von Exchange Server 2013 bis CU 14 ist die Installation von .NET 4.5.X zwingend erforderlich. Neuere Exchange CU Versionen unterstützen auch die .NET Versionen 4.6.X oder noch Neuer. Ist eine Umgebung mit Microsoft Exchange 2013 CU14 oder älter installiert, darf ein .NET Update auf 4.6.X oder neuer nicht erfolgen.

In der Vergangenheit war das kein Problem da über das Windows Update nur Sicherheitsupdates für das auf dem System installiere .NET Framework installiert wurden.
Inzwischen verteilt Microsoft nicht mehr nur Sicherheitsupdates für .NET per Windows Update sondern auch das aktuellste Framework. Was bei Exchange, oder auch bei vielen anderen Systemen wie z.B. TFS Server, CRM Server zu massiven Problemen, bis hin zum Stillstand des Systems führen kann.

Beim updaten der Server muss daher immer geprüft werden ob ein aktuelles .NET Framework angeboten wird.
Sollte dies der Fall sein, muss im nächsten Schritt geklärt werden ob die eingesetzte Serverversion das .NET Framework unterstützt.
Bei Microsoft Exchange Servern kann in dieser Matrix geprüft werden, welches Framework vom installierten System unterstützt wird.

Sollte ein Update auf ein aktuelles .NET bei Exchange Servern bereits aus versehen installiert worden sein, dann sollte es gleich wieder deinstalliert werden.

Dazu sollte wie folgt vorgegangen werden:

Handelt es sich bei dem Exchange Server um ein DAG Mitglied, muss der Server natürlich erst in den Wartungsmodus gesetzt werden. Da allerdings schon Updates installiert wurden, gehe ich davon aus das das schon geschehen ist.

Falls nach der Installation des .NET Frameworks noch kein Neustart durchgeführt wurde, muss das System zuerst neu gestartet werden. Nach dem Neustart sollten die Exchange Serverdienste beendet werden.
Dazu die Exchange Powershell als Administrator ausführen und folgenden Powershell-Befehl absetzen:

(Test-ServiceHealth).ServicesRunning | %{Stop-Service $_ -Force}

Nachdem alle Dienste beendet sind kann das installierte Framework deinstalliert werden.
Unter den installierten Updates (Systemsteuerung -> Programme und Features -> Installierte Updates) sollte das .NET Update mithilfe der KB-Nummer gefunden werden.
Eins Sortierung nach „Installiert am“ kann die Suche erleichtern da man das Update mithilfe des Installationsdatum eingrenzen kann.
Leider wird das .NET Framework nicht als .NET Update sonder als Update für Windows Server 2012 (KBXXXXXX) angezeigt und ist daher nicht sofort erkennbar.

Nach der Deinstallation und einem Neustart sollte das System wieder auf der zuvor installierten .NET Version laufen.

Um zu verhindern, dass das .NET Framework erneut installiert wird, habe ich hier eine Anleitung wie das installieren eines .NET Frameworks geblockt werden kann.