¿El historial de PowerShell no funciona? Mira estas soluciones

Windows PowerShell es increíblemente fácil de administrar una vez que aprende los conceptos básicos del lenguaje de secuencias de comandos. A pesar de eso, los usuarios pueden encontrar algunos contratiempos aquí y allá. Muchos de ellos han informado que PowerShell no acepta el acceso directo Ctrl+R para mostrar la búsqueda del historial de comandos.

Dado que esto significa esencialmente que los usuarios ya no pueden disfrutar de la función de historial, definitivamente es desagradable. PowerShell tiene un historial de comandos incorporado bastante bueno para ayudarlo con esas listas complejas que ha ingresado a lo largo del tiempo, pero si no puede usarlo, es un gran problema.

Si también le preocupa este problema, para solucionarlo, le recomendamos lo siguiente.

¿Qué puedo hacer cuando el historial de PowerShell no funciona?

1. Verifique el ensamblaje de PSReadLine

compruebe el montaje de PSReadLine

Muchos otros han experimentado el mismo problema después de actualizar a Windows 10. Es posible que no sepa que instaló PSReadLine, pero viene incluido con Windows 10, así que acepte que está ahí.

Nos guste o no, prácticamente reemplaza las características del historial de comandos de estilo antiguo con una funcionalidad más sofisticada. La función de historial de comandos en PowerShell no está integrada en el marco de administración de Windows en sí, pero se basa precisamente en el módulo PSReadLine de terceros.

Para confirmar que tiene alguna participación esta vez, intente ejecutar Get-PSReadLineOption y observe si recibe este error con respecto al ensamblaje de PSReadLine:

Get-PSReadLineOption: el inicializador de tipo para ‘Microsoft.PowerShell.PSConsoleReadLine’ generó una excepción.
En línea: 1 carácter: 1
+ Get-PSReadLineOption
+ ~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo: No especificado: (:) [Get-PSReadLineOption]TypeInitializationException
+ Id. de error totalmente calificado: System.TypeInitializationException, Microsoft.PowerShell.GetPSReadLineOption

Si también ve las líneas anteriores, cierre PowerShell, luego cambie el diseño del teclado a es-US. Vuelva a abrirlo y compruebe si el historial de PowerShell funciona de nuevo.

2. Bajar PSReadLine a 1.2

PSReadLine

Actualizar PSReadLine a una nueva versión también podría causar este error que está recibiendo. Esto sucede principalmente si está ejecutando PowerShell con un diseño de teclado que no es en EE. UU.

Sin embargo, si los pasos anteriores no supusieron ninguna diferencia, también puede intentar degradar PSReadLine a 1.2.

3. Pruebe cmdlets alternativos para ver el historial

Obtener historial

Suponga que escribió y ejecutó algunos comandos complicados de PowerShell y desea echar un vistazo ahora. Debería poder navegar por el historial completo de los comandos de PowerShell usando las flechas arriba/abajo.

Como siempre, también puede usar varios cmdlets incluidos para trabajar con su historial. Para ver el historial de los comandos que ha escrito, ejecute el siguiente cmdlet:
Obtener historial

Puede buscar más en su historial canalizando la salida resultante al cmdlet Select-String. No olvide reemplazar «Buscar» en el siguiente cmdlet con el texto real que desea buscar:
Obtener historial | Seleccionar-Cadena-Patrón “Buscar”

Para ver información más detallada sobre los comandos ejecutados anteriormente, incluido el estado del comando o la hora de inicio/finalización, ejecute este comando en su lugar:
Obtener historial | Formato-Lista-Propiedad *

No menos importante, si las cosas funcionan y desea exportar comandos de la sesión actual a un archivo, use el cmdlet Export-Clixml:
Obtener historial | Exportar-Clixml -Ruta c:pscommands_hist.xml

4. Aumentar el número de comandos recordados

cambiar el número de comandos recordados

Recuerde que el búfer de la línea de comandos guarda solo los últimos 50 comandos que escribió. Si querer más es el problema real al que se enfrenta, simplemente aumente este número.

Para que esto suceda, haga clic con el botón derecho en la barra de título de la ventana de solicitud de PowerShell, seleccione Propiedadesentonces simplemente cambie el valor de Tamaño del búfer bajo Historial de comandos.

Una posible causa de este error es que el historial de Powershell está desactivado. Aquí es donde podría haber ingresado antes:
%perfil de usuario%AppDataRoamingMicrosoftWindowsPowerShellPSReadlineConsoleHost_history.txt

Podrías haberlo apagado con:
Establecer-PSReadlineOption –HistorySaveStyle SaveNothing

¿Te suena de algo? Lo mismo ocurre si estás buscando algo después de borrar completamente la memoria con la esperanza de un nuevo comienzo.

Solo tenga cuidado: el cmdlet Clear-History realmente no se puede usar para borrar el historial de comandos. Simplemente borra la lista de comandos que muestra el cmdlet Get-History.

Seguir los procedimientos mencionados en este artículo debería ayudarlo a resolver el problema que estaba experimentando. Si conoce alguna otra forma de hacer que el historial de PowerShell vuelva a funcionar, infórmenos al respecto en la sección de comentarios a continuación.