PowerShell startet nicht mehr (System.ArgumentException, SHostUserInterface.GetTranscriptOptionFromSettings, System.IO.Directory.CreateDirectory)

Unter Windows Server 2012R2 startet die PowerShell „auf einmal“ nicht mehr. Nach dem Start erscheint direkt „powershell funktioniert nicht mehr“ und der Konsolenhost schießt sich wieder.

Server 2012R2 ist zwar bekanntermaßen EOL und muss weg, aber manchmal braucht man für den Wechsel auf ein neues System nun ebenjene PowerShell.

Die PowerShell stürzt ab mit diesem Fehler:

Problemsignatur:
  Problemereignisname:	PowerShell
  NameOfExe:	powershell.exe
  FileVersionOfSystemManagementAutomation:	6.3.9600.21616
  InnermostExceptionType:System.ArgumentException
  OutermostExceptionType:System.ArgumentException
  DeepestPowerShellFrame:SHostUserInterface.GetTranscriptOptionFromSettings
  DeepestFrame:System.IO.Directory.CreateDirectory
  ThreadName:	Consol.. main thread
  Betriebsystemversion:	6.3.9600.2.0.0.400.8
  Gebietsschema-ID:	1031

Lesen Sie unsere Datenschutzbestimmungen online:
  http://go.microsoft.com/fwlink/?linkid=280262

Wenn die Onlinedatenschutzbestimmungen nicht verfügbar sind, lesen Sie unsere Datenschutzbestimmungen offline:
  C:\Windows\system32\de-DE\erofflps.txt

Lösung

In diesem Fall war es die Gruppenrichtlinie „PowerShell-Aufzeichnung aktivieren“ (Computer > Administrative Vorlagen > Windows-Komponenten/Windows PowerShell > PowerShell-Aufzeichnung aktivieren).

Die GPO setzt diesen Registry-Schlüssel:

[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\PowerShell\Transcription]
"EnableTranscripting"="1"

Server 2012R2 erwartet aber nicht nur diesen Key, sondern auch noch den Ausgabepfad als Zeichenkette (OutputDirectory). Bleibt die Zeichenkette leer, startet die PowerShell nicht mehr. Als Gegenprobe: Setzt man den Eintrag „EnableTranscripting“ auf „0“ funktioniert sofort wieder alles – bis die GPO den Eintrag wieder zurückändert.

Also gibt es als schnelle Lösung eine *.reg-Datei, die einfach dort einen Pfad (den es geben sollte!) hinzufügt:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\PowerShell\Transcription]
"OutputDirectory"="C:\\Windows\\Temp"

Solle die GPO beim nächsten gpupdate den Pfad wieder leeren, müsste man seine Richtlinie entsprechend anpassen. Oder (empfohlen) die Migration des 2012R2-Systems ASAP abschießen.

Windows Updates über die Eingabeaufforderung deinstallieren

Aus gegebenem Anlass 🥴 hier die schnelle Notiz zur Entfernung von Windows-Updates an der Kommandozeile. Das braucht man schon mal, wenn mal wieder ein Windows 11 den Nutzer mit einem leeren schwarzen Bildschirm begrüßt. Das eine oder andre Update löst diesen Effekt ja bekanntermaßen aus.

In so einem Fall kann man (zum Glück) mit STRG+ALT+ENTF den Taskmanager starten und von dort aus eine Kommandozeile „Als Administrator“ ausführen.

Lösung

Updates auflisten:

dism /online /get-packages

Updates deinstallieren:

dism /online /remove-package /packagename:<NAME>

Der Name ist die „Paketidentität“ in ganzer Länge. Die Liste ist zwar leider etwas länger und nicht nach einem erkennbaren Muster sortiert, aber so kann man imerhin das „neueste“ Rollup suchen und entfernen.

KB5034129 macht unter Windows Server 2022 Edge, Chromium, Firefox und PDF-Reader kaputt: Nur noch ein weisses Fenster zu sehen

Problem

Nach dem letzten Patchday am 16.1.2024 zeigt Edge beim starten nur noch ein weisses Fenster an, erzeugt eine irrsinnige CPU-Last und erzeugt im Eventlog Einträge die einen Appcrash Protokollieren.

Das „weisse leere Fenster“ gilt auch für Chrome, manchmal auch für Firefox (allerdings gibt’s da schon einen fix) und alles was „msedgewebview2“ als Webview-Element verwendet.

Betroffen ist Windows Server 2022 21H2.

Im Ereignisprotokoll findet sich dabei dieser Eintrag, der auf „bad_module_info“ verweist, aber keine weiteren Details bereithält:

Name der fehlerhaften Anwendung: bad_module_info, Version: 0.0.0.0, Zeitstempel: 0x00000000
Name des fehlerhaften Moduls: unknown, Version: 0.0.0.0, Zeitstempel: 0x00000000
Ausnahmecode: 0xc0000005
Fehleroffset: 0x00007ff704a393ae
ID des fehlerhaften Prozesses: 0x3810
Startzeit der fehlerhaften Anwendung: 0x01da4a1151de7b46
Pfad der fehlerhaften Anwendung: bad_module_info
Pfad des fehlerhaften Moduls: unknown
Berichtskennung: d6beaba6-a725-44a9-bd16-dba961694a0c
Vollständiger Name des fehlerhaften Pakets: 
Anwendungs-ID, die relativ zum fehlerhaften Paket ist: 

(Einen leeren weissen Screenshot spare ich mir)

Lösung

Das Update ASAP deinstallieren:

wusa /uninstall /kb:KB5034129

… geht auch via DISM …

DISM /Online /Remove-Package /PackageName:Package_for_RollupFix~31bf3856ad364e35~amd64~~20348.2227.1.4

… oder sogar per GUI…

Nach dem Reboot läuft sofort wieder alles.

PowerShell: Computer aus der Domäne entfernen

Wie entfernt man an der Kommandozeile einen Computer aus dem AD?

Lösung (Lokal)

Um den lokalen Computer auf die Schnelle (mit Neustart!) aus dem ActiveDirectory zu entfernen:

Remove-Computer -UnjoinDomaincredential DOMÄNE\BENUTZER -PassThru -Verbose -Restart 

Lösung (DC)

Es geht natürlich auch mit Gewalt, auf der ActiveDirectory Seite:

Remove-ADComputer -Identity COMPUTERNAME

Windows 11 Microsoft Newsfeed & Widget (News-Widget/News-Seitenleiste) dauerhaft loswerden

Microsoft Windows 11 (20H2 mit KB5001391) beglückt den Nutzenden, ob gewollt oder nicht, mit einer neuen Seitenleiste „Feeds“, oder auch „Newsfeed“ oder auch „Seitenleiste“ oder auch „News Sidebar“ oder auch „Guten Tag“ oder auch „Nervige Sidebar links“ oder auch „Persönlicher Feed“ oder auch „Microsoft Newsfeed & Widget“. Jetzt auch nicht mehr nur in der Taskleiste, sondern auf dem halben Bildschirm.

Überraschend hält sich das Widget auch nicht an die Einstellung des Standardbrowsers, sondern öffnet alle Link immer in Edge.

Diese Sidebar Newsleiste wird durch die Tastenkombination Win + W geöfnet, oder indem man bei Touch-Panels vom Linken Rand in den Bildschirm wischt.

Wie wird man die Sidebar los?

Lösung

Man kann die Newsleiste an der PowerShell schnell deinstallieren, dann ist (und bleibt) sie verschwunden:

winget uninstall "Windows Web experience pack"