Verlorene Tastatureingaben in PowerShell können in Remotesitzungen auf Windows Server 2022 auftreten, wenn der Zugriff über Royal TSX, Remote Desktop Manager oder den HTML5-Client von Parallels RAS erfolgt. Das Fenster ist aktiv, aber die Tastenanschläge kommen nie bei PowerShell an.
Das Symptom
- Das Problem tritt in einem veröffentlichten Desktop oder einer RDP-Sitzung auf.
- CMD nimmt Tastatureingaben an, PowerShell bleibt stumm.
- Derselbe Server funktioniert über eine lokale Konsole oder einen anderen Zugangsweg.
- Das Verhalten lässt sich mit Royal TSX, Remote Desktop Manager und, je nach Weg, mit dem RAS-HTML5-Client reproduzieren.
Die wahrscheinliche Ursache
PowerShell 5.1 lädt das Modul PSReadLine für die interaktive Bearbeitung der Befehlszeile. Auf manchen RDP- oder HTML5-Eingabewegen kann eine ältere PSReadLine-Version die vom Remote-Client weitergeleiteten Tastaturereignisse falsch verarbeiten. Das Symptom führt in die Irre: PowerShell selbst läuft, aber sein interaktiver Zeilenleser empfängt die Zeichen nicht mehr korrekt.
Der sofortige Workaround
Starten Sie PowerShell aus CMD oder einer anderen Konsole, die noch Eingaben annimmt, und entladen Sie PSReadLine:
Remove-Module PSReadLine
PowerShell fällt auf die einfache Zeileneingabe zurück, und die Tastenanschläge kommen wieder an. Der Befehl deinstalliert nichts und ändert die Konfiguration nicht dauerhaft. Er wirkt nur in der aktuellen Sitzung.
Die dauerhafte Lösung
In dem von uns untersuchten Fall unter Windows Server 2022 meldete der Host PowerShell 5.1.20348.5622 und PSReadLine 2.0.0, geladen aus:
C:Program FilesWindowsPowerShellModulesPSReadLine2.0.0PSReadLine.psd1
Nach dem Update auf PSReadLine 2.4.5 funktionierten die Tastatureingaben in den getesteten Sitzungen mit Royal TSX, Remote Desktop Manager und HTML5 wieder. Prüfen Sie, welche Version tatsächlich verfügbar und geladen ist:
Get-Module PSReadLine -ListAvailable
Get-Module PSReadLine
Aktualisieren Sie das Modul auf dem Rechner, auf dem PowerShell innerhalb der veröffentlichten Sitzung läuft, und halten Sie sich dabei an den üblichen Change-Prozess der Umgebung. Testen Sie zuerst auf einem Lab-Host und öffnen Sie anschließend eine komplett neue Remotesitzung.
Warum CMD weiterhin funktioniert
CMD verwendet PSReadLine nicht. Es nutzt eine andere Konsole und Eingabeschleife. Deshalb kann CMD in derselben Sitzung Tastatureingaben annehmen, in der PowerShell eingefroren scheint. Das ist ein nützlicher Hinweis zur Eingrenzung: RDP und der Tastaturweg können in Ordnung sein, während die interaktive Schicht von PowerShell die fehlerhafte Komponente ist.
Prüfpunkte in der Produktion
- Versionen von Windows Server und PowerShell.
- Die tatsächlich geladene PSReadLine-Version, nicht nur die auf der Festplatte vorhandenen Ordner.
- Sitzungstyp: klassisches RDP, veröffentlichter RAS-Desktop, HTML5-Client oder ein zwischengeschaltetes Gateway.
- Verhalten nach vollständigem Schließen und erneutem Öffnen der Sitzung.
- Richtlinien oder Profile, die womöglich wieder ein älteres Modul laden.
Fazit
Verliert PowerShell die Tastatureingaben nur remote, beginnen Sie mit Remove-Module PSReadLine, um wieder die Kontrolle zu bekommen. Tritt das Problem erneut auf, prüfen Sie die geladene Version und ersetzen Sie PSReadLine 2.0.0 durch eine aktuelle, validierte Version, etwa 2.4.5 wie in unserem Lab. Das Verhalten hängt vom Sitzungsweg ab und zeigt sich daher womöglich nie an einer lokalen Konsole.
Mehr Hintergrund zur Fehlersuche finden Sie im Leitfaden zu den Parallels-RAS-Logs und in der Microsoft-Referenz zu Remove-Module.
