IIS SMTP stürzt nach einem in-place upgrade auf Windows Server 2022 ab (Fehler 7031 und Fehler 1000)

Nach der Durchführung eines In-Place-Upgrades von Windows Server 2016 oder 2019 hat der gute alte IIS SMTP Dienst scheinbar ein ernstes Problem: Er stürzt mit einem Fehler ab wenn an eine E-Mail über diesen versenden will. In manchen Fällen erfolgt der Crash auch schon beim einfachen start des SMTPSVC.

Im Ereignisprotokoll (Anwendungsprotokoll) gibt es auch sofort den dazu passenden Fehler:

Name der fehlerhaften Anwendung: inetinfo.exe, Version: 10.0.20348.1, Zeitstempel: 0x20d57e42
Name des fehlerhaften Moduls: SMTPSVC.dll, Version: 10.0.20348.1, Zeitstempel: 0xba4e29ad
Ausnahmecode: 0xc0000005
Fehleroffset: 0x0000000000059abb
ID des fehlerhaften Prozesses: 0x850
Pfad der fehlerhaften Anwendung: C:\WINDOWS\system32\inetsrv\inetinfo.exe
Pfad des fehlerhaften Moduls: C:\WINDOWS\system32\inetsrv\SMTPSVC.dll
[...]

Wir wissen zwar das der IIS6 „deprecated“ ist, haben aber keine Erklärung für Microsofts offensiver „Your Problem“ Haltung zu dieser oftmals vitalen Windows-Komponente.

Es gibt schliesslich einen Haufen guter Gründe, weiterhin ein internes SMTP-Relay zu betreiben. ERP-Software muss in aller Regel Mails versenden, Scanner-Systeme, Alarmmelder und Maschineninformationen wollen Kontakt halten. Kaum eines dieser Systeme beerrscht die sichere Authentifizierung, noch weniger eines möchte man sowas für den Versand ins Internet lassen.

Lösung

Der Trick ist einfach: man muss einfach vor dem Upgrade ein Backup der IIS-Site machen und nach dem Upgrade widerherstellen. Dann läuft alles wie gewohnt und weiterhin geschmiert. Der Grund ist unsinniges Update-Gefummel in der IIS-Metabase, die sich aber erledigt hat wenn man seine alte (fehlerfreie) Version einfach weiterverwendet.

VOR dem Upgrade ein IIS Backup erstellen

Die CMD-Shell „Als Administrator“ öffnen

%windir%\system32\inetsrv\appcmd.exe ADD BACKUP %computername%

Die Backup-Dateien landen sofort in diesem Pfad:

%windir%\system32\inetsrv\backup\%computername%

NACH dem Upgrade das Backup widerherstellen

Die Backup-Dateien gehen wärend des Upgrades zwar nicht verloren (aber paranoide Admins wie wir kopieren den Inhalt des Verzeichnisses natürlich an einen sicheren Ort).

Auch nach dem Update wird die CMD-Shell „Als Administrator“ benötigt:

%windir%\system32\inetsrv\appcmd.exe RESTORE BACKUP %computername%

Außerdem stellt das Setup den IIS SMTP Dienst auf den manuellen Start um, was nach Server-Neustarts zu Kopfkratzen führen könnte. Der Dienst sollte also möglichst wieder automatisch starten:

sc config smtpsvc start=auto
sc start smtpsvc

Und schon funktioniert der SMTP-Server auch unter Windows Server 2022 wieder.

Aufgaben „XblGameSaveTask“ und „XblGameSaveTaskLogon“ von Windows Server entfernen

Es ist zwar irgendwie nett zu wissen, das man mit den aktuellen Windows Updates nun endlich auch auf seinem Windows Server (und auf Windows Server Core) vernünftig mit seinem X-Box Live Account spielen kann, aber notwendig ist das für den Unternehmensbetrieb eher nicht.

Windows Server brauchte DRINGEND unterstützung für XBox-Games

Wir wissen nicht was Microsoft dazu bewegt hat die Xbox „GameSaveTasks“ aus Server zu verteilen, zumal der Konzern selbst eher das genaue Gegenteil empfielt.

Lösung

Zum Glück kann man die entsprechenden Tasks schnell mit der PowerShell entfernen.

Hier ist die Copypasta:

Unregister-ScheduledTask -TaskName XblGameSaveTask -Confirm:$false
Unregister-ScheduledTask -TaskName XblGameSaveTaskLogon -Confirm:$false

Windows Server 2022 IIS 6 Management Console stürzt ab wenn man SMTP Sites bearbeiten will

Problem

Unter Windows Server 2022 crashen gerne mal alte Verwaltungswerzeuge. Beim SMTP ist das besonders ärgerlich, denn SMTP Relay-Server hat praktisch jeder.

Die MMC Console „Internetinformationsdienste 6.0 (IIS)-Manager“ stürzt mit dem Fehler „Ein Fehler wurde in einem Snap-In festgestellt“ ab. Die Eigenschaften der/des SMTP-Servers lassen sich so nicht (mehr) bearbeiten.

Lösung

Das ist ein Bug in Windows Server 2022 („somehow passed regression tests“). Der SMTP-Stack und die zugehörigen Verwaltungstools sind zwar eigentlich seit Windows Server 2012 (!) „veraltet“ und sollen bald entfernt werden, aber der SMTP ist noch immer im „Lieferumfang“ und die Tools sollten auch weiterhin funktionieren.

Bis zu einem Patch (sofern es denn einen gibt) hilft zuverlässig dieser Workaround:

  1. Erst den SMTP-Dienst beenden (Stop-Service smtpsvc)
  2. Dann in der MMC die Eigenschaften bearbeiten und Konfigurieren
  3. Dann den SMTP-Dienst wider starten (Start-Service smtpsvc)

Die IIS6 Konsole stürzt „nur“ beim Verbinden mit dem Dienst ab … 🤦

Windows 11 Explorer Kontextmenü von Windows 10 wiederherstellen

Windows 11 bietet per Rechtsklick ein „neues“ Kontextmenü im Explorer an, das um alle wichtigen Funktionen beschnitten wurde. Wer das, wie wir Admins, ebefalls nicht mag, kann auch weiterhin das „alte“ Menü von Windows 10 nutzen.

Windows 10 und 11 mit Ihren Explorer-Kontextmenüs

Lösung

Im Explorer (und Desktop) kann man die Tastenkombination Shift+F10 nutzen, um das alte Kontextmenü sofort zu öffnen.

Ab Windows 11 Version 22572 reicht sogar das einfache drücken von Shift aus, um das gute alte Kontextmenü aufzurufen.

Wer nur das alte Kontextmenü nutzen möchte, kann mit einer schnellen Änderung in der Registry das Default-VErhanlten ändern.

Für den aktuellen Benutzer

reg add "HKEY_CURRENT_USER\Software\Classes\CLSID\{86ca1aa0-34aa-4e8b-a509-50c905bae2a2}\InprocServer32" /f /ve

WSUS liefer keine Updates aus, Event 1309 tritt auf, Windows Update zeigt Fehler 0x8024401f

Problem

Ein WSUS-Server mag keine Updates mehr ausliefern. Wir haben das bei „alten“ WSUS-Setups gesehen, aber auch bei nagelneu und ganz frisch installierten Server-Rollen.

Auf den (Windows 10) Clients gibt es nur die wenig hilfreichen Windows-Update Fehlermeldung 0x8024401f gegen die auch kein „Troubleshooting“ hilft:

Windows Update Fehler 0x8024401f

Auf dem WSUS-Server hingegen sagt das Ereignisprotokoll unter „Anwendung“ mit dem Fehler 1309 zumindest etwas mehr aus, wenn auch sehr kryptisch:

Event code: 3005 
Event message: Es ist eine unbehandelte Ausnahme aufgetreten. 
Event sequence: 4 
Event occurrence: 1 
Event detail code: 0 
 
Application information: 
    Application domain: /LM/W3SVC/2062417591/ROOT/ClientWebService-1-132949411067470524 
    Trust level: Full 
    Application Virtual Path: /ClientWebService 
    Application Path: C:\Program Files\Update Services\WebServices\ClientWebService\ 
    Machine name: SRV-DC01 
 
Process information: 
    Process ID: 10664 
    Process name: w3wp.exe 
    Account name: NT-AUTORITÄT\Netzwerkdienst 
 
Exception information: 
    Exception type: InvalidCastException 
    Exception message: Das Objekt des Typs "System.Web.Compilation.BuildResultCustomString" kann nicht in Typ "System.Web.Compilation.BuildResultCompiledType" umgewandelt werden.
   bei System.Web.UI.WebServiceParser.GetCompiledType(String inputFile, HttpContext context)


[...]

Lösung

Ab WSUS3 mit allen Updates und „einigen“ Clients, schlägt bei gleichzeitigen Anfragen eine Typkovertierung fehl. Das ist ein Bug im WSUS-Installer, der die Anwendung fälschlicherweise mit der klassischen (meint: Typenstrenger ISAPI) Pipeline konfiguriert.

Korrekt ist die „Managed ASP.NET“ Pipeline für diesen Applikationspool:

WSUS "Error Code 3005" beheben
  1. Den IIS-Manager auf dem WSUS-Server öffnen
  2. Link unter SERVERNAME\Anwendungspools\WsusPool öffnen
  3. Den „Verwalteter Pipelinemodus“ von „Klassisch“ auf „Integriert“ umstellen
  4. „Anwendungspool sofort starten“ anhaken

Man muss den Server (oder den IIS) danach nicht neu starten, die Änderungen setzt sich sofort durch und die Updates fließen wieder fehlerfrei. Oder zumindest ohne diesen Fehler.