La pérdida de la entrada de teclado en PowerShell puede producirse en sesiones remotas de Windows Server 2022 abiertas con Royal TSX, Remote Desktop Manager o el cliente HTML5 de Parallels RAS. La ventana está activa, pero las pulsaciones nunca llegan a PowerShell.
El síntoma
- El problema aparece en un escritorio publicado o en una sesión RDP.
- CMD acepta el teclado, mientras que PowerShell no responde.
- El mismo servidor funciona desde una consola local o por otra vía de acceso.
- El comportamiento se reproduce con Royal TSX, Remote Desktop Manager y, según la ruta, con el cliente HTML5 de RAS.
La causa probable
PowerShell 5.1 carga el módulo PSReadLine para la edición interactiva de la línea de comandos. En algunas rutas de entrada RDP o HTML5, una versión antigua de PSReadLine puede gestionar mal los eventos de teclado que reenvía el cliente remoto. El síntoma engaña: PowerShell sigue funcionando, pero su lector de líneas interactivo ya no recibe bien los caracteres.
La solución inmediata
Desde CMD u otra consola que siga aceptando entrada, arranca PowerShell y descarga PSReadLine:
Remove-Module PSReadLine
PowerShell vuelve a la entrada de línea básica y las pulsaciones vuelven a llegar. El comando no desinstala nada ni cambia la configuración de forma permanente: solo afecta a la sesión actual.
La solución duradera
En el caso de Windows Server 2022 que investigamos, el host mostraba PowerShell 5.1.20348.5622 y PSReadLine 2.0.0 cargado desde:
C:Program FilesWindowsPowerShellModulesPSReadLine2.0.0PSReadLine.psd1
Tras actualizar a PSReadLine 2.4.5, el teclado volvió a funcionar en las sesiones de Royal TSX, Remote Desktop Manager y HTML5 que probamos. Comprueba qué versión está realmente disponible y cargada:
Get-Module PSReadLine -ListAvailable
Get-Module PSReadLine
Actualiza el módulo en el equipo donde se ejecuta PowerShell dentro de la sesión publicada, siguiendo el proceso de cambios habitual del entorno. Prueba primero en un host de laboratorio y abre después una sesión remota completamente nueva.
Por qué CMD sigue funcionando
CMD no usa PSReadLine: utiliza otra consola y otro bucle de entrada. Por eso CMD puede aceptar el teclado en la misma sesión en la que PowerShell parece congelado. Es una pista útil para aislar el problema: RDP y la ruta del teclado pueden estar bien, mientras que la capa interactiva de PowerShell es el componente que falla.
Comprobaciones en producción
- Versiones de Windows Server y PowerShell.
- La versión de PSReadLine realmente cargada, no solo las carpetas presentes en el disco.
- Tipo de sesión: RDP clásico, escritorio publicado por RAS, cliente HTML5 o un gateway intermedio.
- Comportamiento tras cerrar por completo la sesión y volver a abrirla.
- Directivas o perfiles que puedan volver a cargar un módulo antiguo.
En resumen
Si PowerShell solo pierde el teclado en remoto, empieza con Remove-Module PSReadLine para recuperar el control. Si el problema vuelve, comprueba la versión cargada y sustituye PSReadLine 2.0.0 por una versión reciente y validada, como la 2.4.5 de nuestro laboratorio. El comportamiento depende de la ruta de la sesión, así que puede que nunca aparezca en una consola local.
Para más contexto sobre la resolución de problemas, consulta la guía de logs de Parallels RAS y la referencia de Microsoft sobre Remove-Module.
