RASInsider
← Alle artikelen
8 oktober 2026 / PowerShell & automatisering / Probleemoplossing / 2 min leestijd

PowerShell zonder toetsenbord in een externe sessie: de rol van PSReadLine

PowerShell zonder toetsenbord in een externe sessie: de rol van PSReadLine

Verloren toetsenbordinvoer in PowerShell kan optreden in externe sessies op Windows Server 2022 via Royal TSX, Remote Desktop Manager of de HTML5-client van Parallels RAS. Het venster is actief, maar de toetsaanslagen komen nooit aan bij PowerShell.

Het symptoom

  • Het probleem treedt op in een gepubliceerd bureaublad of een RDP-sessie.
  • CMD accepteert het toetsenbord, PowerShell blijft stil.
  • Dezelfde server werkt via een lokale console of een andere toegangsweg.
  • Het gedrag is te reproduceren met Royal TSX, Remote Desktop Manager en, afhankelijk van de route, met de RAS HTML5-client.

De waarschijnlijke oorzaak

PowerShell 5.1 laadt de module PSReadLine voor het interactief bewerken van de opdrachtregel. Op sommige RDP- of HTML5-invoerroutes kan een oudere versie van PSReadLine de toetsenbordgebeurtenissen die de externe client doorstuurt verkeerd afhandelen. Het symptoom is misleidend: PowerShell zelf draait gewoon, maar de interactieve regellezer ontvangt de tekens niet meer goed.

De directe workaround

Start PowerShell vanuit CMD of een andere console die nog invoer accepteert, en ontlaad PSReadLine:

Remove-Module PSReadLine

PowerShell valt terug op eenvoudige regelinvoer en de toetsaanslagen komen weer binnen. Het commando verwijdert niets en wijzigt de configuratie niet blijvend. Het geldt alleen voor de huidige sessie.

De blijvende oplossing

In het geval op Windows Server 2022 dat we onderzochten, meldde de host PowerShell 5.1.20348.5622 en PSReadLine 2.0.0, geladen vanuit:

C:Program FilesWindowsPowerShellModulesPSReadLine2.0.0PSReadLine.psd1

Na de update naar PSReadLine 2.4.5 werkte de toetsenbordinvoer weer in de geteste sessies via Royal TSX, Remote Desktop Manager en HTML5. Controleer welke versie werkelijk beschikbaar en geladen is:

Get-Module PSReadLine -ListAvailable
Get-Module PSReadLine

Werk de module bij op de machine waar PowerShell binnen de gepubliceerde sessie draait, volgens het gebruikelijke changeproces van de omgeving. Test eerst op een labhost en open daarna een volledig nieuwe externe sessie.

Waarom CMD het nog wel doet

CMD gebruikt PSReadLine niet. Het werkt met een andere console en invoerlus. Daarom kan CMD het toetsenbord accepteren in dezelfde sessie waarin PowerShell bevroren lijkt. Dat is een nuttige aanwijzing om het probleem te isoleren: RDP en de toetsenbordroute kunnen prima in orde zijn, terwijl de interactieve laag van PowerShell de falende component is.

Controles in productie

  • Versies van Windows Server en PowerShell.
  • De werkelijk geladen versie van PSReadLine, niet alleen de mappen die op schijf staan.
  • Sessietype: klassiek RDP, gepubliceerd RAS-bureaublad, HTML5-client of een tussenliggende gateway.
  • Gedrag na het volledig sluiten en opnieuw openen van de sessie.
  • Beleid of profielen die mogelijk opnieuw een oudere module laden.

Kortom

Verliest PowerShell alleen op afstand de toetsenbordinvoer, begin dan met Remove-Module PSReadLine om de controle terug te krijgen. Komt het probleem terug, controleer dan de geladen versie en vervang PSReadLine 2.0.0 door een recente, gevalideerde versie, zoals 2.4.5 in ons lab. Het gedrag hangt af van de sessieroute en kan zich dus op een lokale console nooit voordoen.

Meer achtergrond bij probleemoplossing vind je in de gids over Parallels RAS-logs en in de Microsoft-referentie voor Remove-Module.

RASInsider als eerste zien in het nieuws van Google?RASInsider toevoegen als voorkeursbron in Google

Had je iets aan dit artikel?