BlueScreen / Stopp, Windows 10 CSC reset

Nach dem Update auf Windows 10 Version 20H2, der Herbstversion 2020 hatte ich auf einer Reihe von Lenovo Notebooks und auf zwei Microsoft Surface Pro Tablets das Problem, dass sich im Verlauf der Anmeldung das Betriebssystem mit einem Bluescreen (BSOD, Stopp-Fehler) verabschiedete.

IMG-20201209-WA0000_ON1_Cloud

Für alle die hier nicht mehr weiterlesen wollen, könnte das Setzen des folgenden Parameters in der Registry von Windows 10 und ein damit verbundener Neustart das Problem beheben.

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\CSC\Parameters]
"FormatDatabase"=dword:00000001

Neustart nicht vergessen Smile

Alle Interessierten dürfen gerne den Rest des Beitrags lesen.

Fehlerbild(er)

Eine Reihe mir zugesandter Screenshots die von den Anwendern mit dem Smartphone erstellt wurden, zeigten ein diffuses Fehlerbild.

Unterschiedlich war dabei immer die Fehlerursache, dabei tauchten verschiedene Komponenten des Betriebssystems auf:

  • mrxsmb20.sys (7x), mountmgr.sys (1x) und auch der volume.sys (1x)
  • Lenovo L460, L470 und T14L
  • Surface Pro 4 und Surface Pro 7

Gleich waren auf allen Windows 10 Systemen die folgenden Parameter

  • Der BSOD tauchte immer während der Anmeldung auf
  • Windows 10 Version 20H2
  • kürzlich auf die Version 20H2 aktualisiert
  • Nach dem Update lief der Computer im Netzwerk (Firma) stabil!
  • Der Computer ist Mitglied einer Domäne, aber die Anmeldung erfolgte ohne Verbindung zum Domain Controller im HomeOffice
  • Konfiguriertes OneDrive for Business

Workarounds

Eine schnelle Lösung brachte die Verwendung eines lokalen Benutzers auf den Endgeräten. Der Computer war zwar nach wie vor Mitglied der Domäne, aber von Benutzer wurde im HomeOffice ein lokales Konto verwendet. Dieses hatte ich entweder im Vorfeld schon angelegt, konnte es über Teamviewer “nachrüsten” oder der Anwender war dazu selbst in der Lage.

Damit war ein Zugang per RDP auf den eigentlichen PC innerhalb der Firma möglich und der Druck erst einmal weg.

Darüber hinaus brachte das Zurücksetzen von Windows auf die vorherige Version bei allen Surface Geräten Abhilfe. Der BSOD war verschwunden! Ich muss aber gestehen, dass ich das auf den Lenovo Notebooks nicht in Betracht ziehen wollte.

Zusammenfassend konnte das Problem schnell mit den beiden folgenden Ansätzen gelöst werden.

  1. Verwenden eines lokalen Benutzers (den ich inzwischen generell immer anlege, zusätzlich zu einem lokalen Admin) und auch einrichte (Outlook, OneDrive, …)
  2. Rückkehr auf die vorherige Version von Windows 10

Zufrieden war ich aber mit beiden Lösungen nicht. Zum einen führen lokale Benutzerprofile dazu, dass irgendwann Daten darin verschwinden und nicht mehr auf dem Server gespeichert werden. Eine Rückkehr auf die vorherige Version von Windows kann nur temporär eine Lösung sein, das nächste Update kommt bestimmt. Also musste dafür eine ordentliche Lösung gefunden werden und kein Workaround. Durch die Workarounds konnten alle Anwender zunächst einmal arbeiten.

Die eigentliche Lösung

Durch das Auftauchen von Komponenten die mit dem Speicher (Festplatte) und Cache von Windows zu tun hatten, dachte ich zuerst an einen Defekt des Notebooks. Da der BSOD aber nach der Verwendung des lokalen Benutzer-Kontos nicht mehr auftrat, konnte ich diesen Verdacht beiseitelegen und außerdem hatte ich inzwischen das Problem auf mehreren Geräten.

Geblieben waren aber der mrxsmb20.sys und das der STOPP-Fehler der generell bei einer Anmeldung ohne Domain Controller erfolgte.

Das zeigte mir auch ein Blick in den memory.dmp (PROCESS_NAME: winlogon.exe ist der Anmelde-Prozess von Windows)image

Dazu bekommen wir gleich zu Beginn der Analyse den Hinweis, dass etwas beim Zugriff auf das Dateisystem schief gegangen ist, nämlich als eine RDR (ReDirection) stattgefunden hat.

image

Das ist der Fall, wenn ein Computer sich Offline anmeldet. Inzwischen konnte ich nachvollziehen, dass die Anmeldung direkt im Firmennetzwerk ohne Probleme funktioniert und lediglich im HomeOffice der BSOD auftritt.

Im ersten Screenshot des Debuggers ist zu sehen, dass es sich um einen ExceptionCode c0000005 handelt und der Zugriff auf den Offline Cache fehl schlägt. Der entsprechende Ordner dafür liegt im Windows Verzeichnis mit dem Namen CSC.

# Windows Client Side Cache Ordner (Offline Files)

%WINDIR%\CSC

Die Berechtigungen auf diesen sind einfach gehalten und mit SYSTEM:F überschaubar. Allerdings lassen sie sich nur im passenden Kontext überprüfen. Ich verwende dazu Psexec.exe von Sysinternals, welches mit dem Parameter –s im Systemkontext gestartet werden kann.

# Start von Psexec.exe unter Local System

C:\Temp> "\Program Files (x86)\Windows Sysinternals Tools\psexec.exe" -s cmd.exe

# Kontrolle der Berechtigungen

C:\Windows> cacls csc /t

image
Nachdem die Berechtigungen richtig angezeigt wurden, erinnerte ich mich an frühere Migrationen von Dateiservern wo im Anschluss der CSC Cache Probleme gemacht hat und zurück gesetzt werden musste. Korrekter Weise dessen Datenbank und ein Upgrade von Windows 10 auf eine höhere Version könnte hier durchaus ebenfalls zu Problemen oder Inkompatibilitäten führen.

Ein Rücksetzen des CSC ist über den folgenden Registry-Eintrag möglich. Natürlich verbunden mit einem notwendigen Neustart des Computers.

image

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\CSC\Parameters]
"FormatDatabase"=dword:00000001

Damit war auch eine Anmeldung im HomeOffice möglich und damit die Lösung des Problem gefunden.

Alle nun folgenden Notebooks habe ich gleich im Anschluss nach dem Upgrade ebenfalls mit diesem Eintrag versehen und die CSC Datenbank gelöscht. Das Problem ist danach nicht mehr aufgetreten.

Enjoy it, b!

Windows 10 Upgrade schlägt fehl

Beim Upgrade von zwei Windows 10 PCs wurde ich von der folgenden Fehlermeldung überrascht.

image

Windows kann mithilfe von Setup nicht auf einem USB-Speicherstick installiert werden.

Windows war der Meinung, dass die interne Festplatte (eine SSD) ein USB-Stick wäre. Lösen lässt sich dieses Problem, indem in der Windows Registry der folgende Wert auf 0 gesetzt wird.

image

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control
PortableOperatingSystem = 0

Damit konnte Windows ohne Probleme auf die gerade aktuelle Version 20H2 aktualisiert werden.

Enjoy it, b!

GPO Error "Resource $(string id="Win7Only)‘

Die Fehlermeldung lautet wie folgt und erscheint bei der Anzeige der Settings / Einstellungen einer GPO.

Error "Resource $(string id="Win7Only)' referenced in attribute displayName could not be found" when opening gpedit.msc in Windows

Im GPO-Management wird der Fehler wie folgt angezeigt.

image

Microsoft selbst, kennt den Fehler auch und liefert in diesem KB-Artikel die Lösung, bzw. einen Workaround wie man den Fehler beheben kann.

https://support.microsoft.com/en-us/help/4292332/error-when-you-open-gpedit-msc-in-windows

Der Fehler ist bei mir aufgetreten, nachdem ich eine auf Windows Server 2012 R2 laufende Domain für Windows Hello vorbereiten wollte, dazu gehört auch das Aktualisieren der ADMX-Dateien.

Da ich schon die aktuellen ADMX-Dateien eingespielt hatte, hier geht es zu den Windows 10 ADMX-Dateien für Version 2004, blieb mir nur die Möglichkeit die ADML-Datei zu editieren. Das kann man entweder mit Notepad oder mit Notepad++ machen.

Dazu habe ich die folgenden Schritte durchgeführt.

Erstellen eines Backups für die SearchOCR.adml Datei im folgenden Ordner:

C:\Windows\SYSVOL\domain\Policies\PolicyDefinitions\en-US

Das geht am einfachsten in einer Eingabeaufforderung oder in PowerShell mit xcopy, wobei beide Sitzungen mit erweiterten Adminrechten gestartet werden müssen.

C:\Windows\SYSVOL\domain\Policies\PolicyDefinitions\en-US
# Wechsel in der Verzeichnis mit den PolicyDefinitions der jeweiligen Sprache
C:\Windows\SYSVOL\domain\Policies\PolicyDefinitions\en-US
# Sichern der alten Datei mit dem Namen searchocr.adml durch xcopy
xcopy searchocr.adml \temp

Dann wird mit dem Editor eine Leerzeile in Zeile 26 eingefügt, und in diese leere Zeile der folgende String kopiert.

# Einfügen des folgenden Strings in Zeile 26"
Microsoft Windows 7 or later

Im Editor sieht das dann wie folgt aus.

image

Danach ist die Fehlermeldung verschwunden und die GPO-Einstellungen werden korrekt angezeigt.

Enjoy it, b!

Supermicro X11SCH-F “other devices”

Nach der Installation von Windows Server 2019 wird für das Supermicro X11SCH-F Motherboard eine Reihe von unbekannten Geräten (other devices) angezeigt, für die kein Treiber installiert werden wurde.

image

Würden wir uns auf einem Windows Server ohne GUI (Desktop Experience) befinden, dann wäre DevManView von Nirsoft die erste Wahl um die korrekte Installation von Treibern und Geräten zu kontrollieren. Das Tool ist kostenfrei und gehört nach meiner Meinung auf jeden Windows Server Core, aber das nur nebenbei.

Die Lösung dieses Problems, habe ich in Teilen in diesem Blog beschreiben. Interessanter Weise hat aber die Installation des aktuellsten Intel Chipset INF Utility nicht alle Geräte korrekt mit Treibern versorgt.

image

Übrig geblieben sind zwei Geräte mit der Bezeichnung PCI Simple Communications Controller

image

Windows Update wollte für die beiden Geräte ebenfalls keine Treiber bereitstellen und so war etwas Recherche notwendig, um hier eine Lösung zu finden. Für mich interessant war, dass Supermicro ebenfalls auf seiner Webseite einen Intel Chipsatz Treiber anbietet, der nicht ganz der aktuellen Version von Intel entspricht, dass Problem aber behoben hat.

image

Dabei gab es aber noch ein kleineres Problem zu lösen. Wenn nun schon das aktuelle Intel Chipset INF Utility installiert wurde, bemerkt das der Installer infinst_autol.exe und bietet ein Downgrade an, was natürlich eine Option sein könnte. Eine Alternative ist aber, explizit mit einem rechten Mausklick und Update driver, den Pfad für den Treiber mit anzugeben.

image

Die Installation muss explizit für jedes Gerät erfolgen:

  1. Rechtklick und Auswahl von Update driver
  2. Auswahl von Browse my computer for driver software
  3. Über die Option Browse den Pfad zum Treiber für Windows 10-x64 angeben und den Treiber installieren

    C:\Users\Administrator\Downloads\Chipset_v10.1.17861.8101\DriverFiles\production\Windows10-x64

Beide Geräte wurden damit erfolgreich erkannt.

image

image

Da es sich um Treiber für die Intel Management Engine handelt, wäre möglicher Weise eine Suche nach einen passenden Treiberpaket dafür ebenfalls von Erfolg gekrönt gewesen. Letztendlich hat es aber so auch funktioniert.

Enjoy it, b!

Fix: Windows 10 Update and Small Business Essentials Connector

Informationen in deutscher Sprache sind unter dem folgenden Link verfügbar.

While this blog is held in german language, one article requires an addition written in english language.

For Windows 10, Microsoft provides every 6 months a major version update to add new features to it’s client operating system.

This update, if done by an ISO or with an update package from WSUS may break the Windows Server Small Business Essentials Connector by forgot to migrate the connector services registry keys.

Windows SBE services

While these five services are displayed in the services.msc they are, without corresponding registry keys, are no longer functional.

Additionally the Windows 10 client seems to offline from Windows SBE dashboard.

Windows 10 clients offline in dashboard

To get the connector back working, I’ve written a script adding the missing registry keys from a PowerShell session. The ZIP-file contains beside the PowerShell code the REG-files containing the missing keys.

To run the script, follow the steps described bellow:

  1. Download the script and extract the content to a dedicated directory
  2. Open a PowerShell session as Administrator and jump to the directory with the PowerShell-script and the REG-files. Note, script and REG-files must live in the same directory
  3. Execute the script by running the following line of PowerShell (to workaround PowerShell Execution-Policies) and don’t miss the “-“ at the end of the script.
# Workaround some obscure PowerShell Execution-policies 😉
# don't miss the "-" at the end of the line!
Get-Content -Path .\Fix-WSeLaunchpad-1903.ps1 | PowerShell.exe -NoProfile -

A successful execution looks, like the following picture shows.

Note: Don’t forget to reboot your Windows 10 client, to make the connector work again.

Enjoy it, b!

Zeitumstellung und die Windows Server Essentials Status Mails

Aus gegebenem Anlass, falls der Windows Server Essentials keine Status Mails mehr verwenden will. Wir hatten wieder eine Zeitumstellung und damit kommt der Management-Service nicht zurecht.

image

Der Fehler tritt auf, egal ob wir einen Windows Server 2012 R2 oder Windows server 2016 Small Business Esentials betreiben und die Lösung ist immer noch die gleiche wie vor 2 Jahren Winking smile

net stop "Windows Server Essentials Management Service" && net start "Windows Server Essentials Management Service"

Der Windows Server Essentials wäre damit auch ein Produkt, welches von der Abschaffung der Zeitumstellung profitieren würde.

Enjoy it, b!

Fix: Windows 10 Update 20H2 und der Essentials Connector

Info: Bitte die Update Historie unten lesen, ursprünglich wurde das Script für Windows 10 Version 1903 entwickelt und seitdem immer wieder getestet und aktualisiert. Für alle die nicht lesen wollen, die aktuelle Version des Scripts befindet sich hier .

For the english version, please follow this Link.

Zumindest aus Sicht des Windows Server Essentials Connector ist jedes Update von Windows 10 spannend. Die seit gestern offiziell verfügbaren Version 1903 für Windows 10 versäumt es beim Upgrade, die für die Ausführung des Windows Server Essentials Connectors notwendigen Dienste (Services) zu migrieren. Die sind nach dem Update nicht mehr vorhanden.WSE-1903

Damit ist der Windows 10 Client nicht mehr in der Lage sich am Windows Server Essentials an zu melden um seinen Status zu kommunizieren oder eine Sicherung durch zu führen. Im Dashboard des Server erscheint der Client Offline.

image

Damit das wieder klappt, müssen die Services hergestellt werden. Das geht am einfachsten durch das folgende Script, welches die Services in Form von REG-Dateien in die Registry importiert. Im Anschluss, nach einem Neustart funktioniert der Connector ohne Probleme.

image

Das Script und die dazu notwendigen REG-Dateien sind in der ZIP Datei als Download verfügbar. Für eventuelle Schäden lehne ich jegliche Haftung ab.

  • Die Ausführung des Scripts muss in einer PowerShell-Session als Administrator erfolgen
  • Script und REG-Dateien müssen zwingend im gleichen Verzeichnis liegen
  • Das Script prüft ob es sich um den Version 1903 oder höher handelt. Nur dann werden die REG-Dateien in die lokale Registry des Windows 10 Clients eingetragen

Möglicher Weise können Probleme mit der PowerShell Execution-Policy auftreten, dazu wende ich den folgenden Workaround an.

Get-Content -Path .\Fix-WSeLaunchpad-1903.ps1 | PowerShell.exe -NoProfile -

image

Update 30.05.2019:
Inzwischen ist es mir gelungen, dass Microsoft dieses Problem als Bug (Fehler) betrachtet und an einem Fix arbeitet. Wie schnell damit zu rechnen ist, kann ich nicht sagen melde mich aber wenn ich weiteres weiß.

Update 15.07.2019
Das Script, und damit der Workaround funktionieren mit dem WSE 2016 und dem WSE 2012R2, dass mag im Blog nicht richtig rüber gekommen sein. Für die anderen Versionen (WSE 2011 und 2012) müsste man die Registry-Einträge des Connectors vergleichen.

Update 21.07.2019
Ich hatte nun die Gelegenheit Windows 10 Clients an einem SBE 2012 (ohne R2) um zu stellen und muss gestehen, dass das Script hier definitiv nicht funktioniert. Der Clientconnector dort verwendet wohl andere Einträge in der Registry als unter Windows Server 2012R2/2016.

Update 18.11.2019
Mit dem Update auf Windows 10 1909 gibt es keine Probleme, dass liegt an der von Microsoft geänderten Bereitstellung. Dazu werden vornehmlich nur Features freigeschaltet, die schon in früheren Versionen vorhanden waren.

Update 11.12.2019
Wird ein ISO mit Windows 10 1909 für einen Upgrade, zum Beispiel von Windows 7 auf Windows 10 verwendet. Schlägt der Bug wieder zu und das bisherige Script funktioniert leider nicht. Darum habe ich eine kleine Änderung durchgeführt und eine Version erstellt (steht nun auch in der History), die mit 1903 und neuer funktioniert.

Update 15.05.2020
Auch mit Windows 10 2004 tritt dieses Problem auf und kann über das Script behoben werden. Ich habe an diesem eine Reihe kleinerer Korrekturen durchgeführt und hier zum Download bereitgestellt.

Update 23.10.2020
Seit dem letzten Jahr, oder denken wir in Updates, seit Windows 10 Version 1909, liefert Microsoft das Herbstupdate als normales Windows Update aus, dass Features die im Verlauf der letzten Monate durch Updates (in 2004) installiert wurden aktiviert. Damit funktioniert das Update auf diesem Weg ohne Probleme und das Script ist nicht notwendig. Erfolgt aber ein Upgrade, zum Beispiel der Version 1909, durch das Windows 10 20H2 ISO, kann das Script im Anschluss den Connector reparieren.

Enjoy it, b!

Supermicro X11SCH-F BIOS Update mit der UEFI Shell

Für das Server-Motherboard Supermicro X11SCH-F, ist kein Update des BIOS über einen mit DOS präparierten USB-Stick vorgesehen. Der Hersteller verweist hier auf die UEFI Shell, was wenn man das mal gemacht hat, sehr einfach geht. Die dazu notwendigen Schritte werde ich hier beschreiben.

Als BIOS kam die folgende Version zum Einsatz.

image

Für das Update habe ich den Server erst einmal mit der UEFI: Built-in EFI Shell gestartet.

image

Die Möglichkeit diese als Boot Device zu verwenden, muss aber erst einmal im BIOS des Servers eingestellt werden. Dazu beim Start die Taste DEL bzw. ENTF drücken.

Dieser Server hatte diese Option noch nicht konfiguriert, wie im Folgenden zu sehen ist.

image

Um diese Möglichkeit zu aktivieren, habe ich unter UEFI Boot Option #2 die [UEFI USB Hard Disk] gegen die UEFI: Built-in EFI Shell getauscht.

image

Das Abspeichern der Änderung hier mit F4 nicht vergessen. Die Möglichkeit die UEFI: Built-in EFI Shell auszuwählen erscheint, wenn die Taste F11 beim Start des Servers gedrückt wird.

image

Danach befinden wir uns in UEFI Shell Smile

Sinnvoll ist es hier, dass alle USB-Devices vom Server entfernt werden, mit Ausnahme dem welches das BIOS enthält.image

Gemäß der Anleitung habe ich die folgenden Schritte ausgeführt und habe dabei gleich festgestellt, dass mein Stick auf fs1: zu finden war.

  1. fs1:
  2. fs1:\> cd bios
  3. fs1:\> cd x11sch
  4. fs1:\> flash.nsh X11SCH0.526

image

Mit einem Return (Taste) startet der Flashvorgang und damit das Update des BIOS …

image

… was ein wenig dauern kann, bei mir waren es 5 Minuten. Danach sieht die Sache wie folgt aus und der Server kann neu gestartet werden.

image

Ich schalte nach erfolgreichem Update den Server ganz aus, damit er beim nächsten Neustart sich vollständig initialisiert, dass mag aber Geschmacksacke sein.

Sollte der Server im BIOS auf Boot mode select [UEFI] stehen, so wird dieser Wert durch das Update auf [DUAL] geändert und der Windows Boot Manager kann das Betriebssystem nicht mehr laden. Dann einfach nochmals ins BIOS gehen und die Option auf [UEFI] ändern, was den Windows Boot Manager an seiner ehemaligen Position wieder einblendet.

image

Dann klappt es auch wieder mit dem Start des Betriebssystems.

Enjoy it, b!

Ändern der Standard-Ordner in Outlook Teil 1

Outlook verwendet für die Standard-Ordner die Sprache, in der es installiert wurde. Wird also eine Office365 Mailbox auf einem englischem Outlook zum ersten Mal initialisiert, dann erscheinen die Ordner mit englischen Namen.

image

Wird die Mailbox nun mit einem in deutscher Sprache installierten Outlook betrieben, können diese Namen entsprechend zurückgesetzt werden.

:: Zurücksetzen der Anzeigesprache für Outlook Standard-Ordner
outlook.exe /resetfoldernames

In welchem Ordner sich die Outlook.exe befindet, lässt sich recht einfach mit einem Aufruf in der Eingabeaufforderung herausfinden. In diesen muss dann vor der Ausführung des obigen Befehls gewechselt werden.

image

:: Wechsel in das Outlook-Verzeichnis
cd /d "c:\Program Files\Microsoft Office\root\Office16"

Nun werden die Ordner in der passenden Anzeigesprache dargestellt.

Enjoy it, b!

Windows Backup und alte nicht mehr vorhandene Sicherungen

Es ist mal wieder Zeit etwas über Windows Backup und seine Eigenheiten zu schreiben.

Gelegentlich laufen mir die Sicherungsplatten der Small Business Server voll und Windows Backup schafft es nicht die alten Sicherungen zu entfernen.

image

Windows Backup liefert neben wbadmin.exe noch eine Reihe von PowerShell Befehlen mit, die bei der Wartung und damit zu Behebung des Problems hilfreich sind.

# Löschen aller alten Backups bis auf die letzten 10
wbadmin delete backup -keepversions:10 -quiet

Der Aufruf funktioniert sehr gut, allerdings kommt er nicht mit Backups zurecht die nicht mehr erreichbar sind, sich also auf einer Offline-Platte befinden. Damit haben wir die Situation, dass die Backups auf der Platte sind und noch einen Eintrag im Katalog besitzen. Ist die Platte noch da, können die Backups problemlos gelöscht werden. Im Falle eines Defekts oder Verlusts geht das nicht und wbadmin liefert die folgenden Fehlermeldungen (grüner Kasten).

image

The operation to delete backup version … failed with error:
The specified media type is invalid.

Eine Bereinigung des Backup-Katalogs ist über zwei Wege möglich, zum einen bietet wbadmin die Möglichkeit explizit die Backup-Version (blauer Kasten oben) zu löschen, fordert hier aber zweimal die Bestätigung mit [Y]es. Die Verwendung der Option –quiet überspringt leider die optionale Nachfrage zur Löschung des Eintrags aus dem Katalog.

# Löschen von alten Backups über die Versions-ID
wbadmin delete backup -versions:09/20/2014-21:00

Alternativ und effektiver bewerkstelligt man die Aufgabe mit PowerShell.

# Löschen aller alten Backups bis auf die letzten 10
Remove-WBBackupSet -MachineName server.domain.tld -KeepVersions 10

Auch bei dem Aufruf von Remove-WBBackupSet kommt es zu Fehlermeldungen wegen des fehlenden Mediums, diese werden aber ignoriert und der Backup-Katalog bereinigt.

Die nun noch vorhandenen Versionen lassen sich mit Get-WBBackupSet anzeigen

# Anzeige der nun noch vorhandenen Backup Versionen
Get-WBBackupSet

Bis zum nächsten Mal.

Enjoy it, b!