Cómo obtener el historial de comandos de PowerShell en Windows 10

PowerShell en Windows 10 puede brindarle un historial de cada comando que ha ejecutado en la sesión actual, sin embargo, para muchos usuarios esto no es suficiente. Necesitan un historial de comandos ejecutados en sesiones. Si necesita obtener el historial de comandos de PowerShell, y el historial de la sesión actual por sí solo no es suficiente, hay un script y un archivo de registro que pueden ayudarlo.

Historial de comandos Sesión actual

Si está ejecutando PowerShell 5, puede obtener el historial de comandos de la sesión actual ejecutando el siguiente comando;

Get-History

De forma predeterminada, PowerShell puede guardar hasta 50 comandos, pero puede cambiarlo para ahorrar más. Abra PowerShell y haga clic con el botón derecho en la barra de título. Desde el menú contextual, vaya a Propiedades. En la ventana Propiedades, vaya a la pestaña Opciones. Verá una sección de Historial de comandos donde el valor predeterminado es 50. Cámbielo a un valor más alto.

  Cómo abrir y personalizar el centro de actividades en Windows 11

Registro de historial de PowerShell

Para ver el registro histórico, primero debe instalar el módulo PSReadLine con el siguiente comando;

Install-Module PSReadLine

A continuación, ejecute el siguiente comando y devolverá una ubicación de archivo. El archivo en esta ubicación le dará un historial completo de cada comando que haya ejecutado en PowerShell.

(Get-PSReadlineOption).HistorySavePath

Historial de comandos de PowerShell entre sesiones

Este es un proceso un poco largo, pero vale la pena. Esta solución proviene de Intel. Primero abra la siguiente ubicación y verifique si hay un archivo llamado Microsoft.PowerShell_profile.ps1 en esta ubicación.

C:Users<username>DocumentsWindowsPowerShell

Si no hay ningún archivo allí, abra PowerShell y ejecute el siguiente comando. Abrirá su archivo de perfil en el Bloc de notas, pero ese archivo no existe y PowerShell se lo dirá y le preguntará si desea crearlo. Permita que cree el archivo.

notepad $Profile

Cierre el archivo de la libreta que se abre. En PowerShell, ejecute este comando para asegurarse de que está ejecutando PowerShell 5.

$PSVersionTable.PSVersion

A continuación, configure su política de ejecución en RemoteSigned con el siguiente comando.

set-executionpolicy remotesigned

A continuación, debe instalar el PsUrl y PSReadline módulos. Puede instalarlos con el siguiente comando, aunque si obtiene un error, simplemente instálelos manualmente mediante el proceso descrito en las páginas vinculadas, o intente agregar el repositorio como un repositorio confiable y luego ejecute el comando nuevamente.

install-module PsUrl
install-module PSReadline

Ahora que se han instalado esos módulos, abra este archivo;

C:Users<username>DocumentsWindowsPowerShellMicrosoft.PowerShell_profile.ps1

Pegue lo siguiente dentro de este archivo y guárdelo.

$HistoryFilePath = Join-Path ([Environment]::GetFolderPath('UserProfile')) .ps_history
Register-EngineEvent PowerShell.Exiting -Action { Get-History | Export-Clixml $HistoryFilePath } | out-null
if (Test-path $HistoryFilePath) { Import-Clixml $HistoryFilePath | Add-History }
# if you don't already have this configured...
Set-PSReadlineKeyHandler -Key UpArrow -Function HistorySearchBackward
Set-PSReadlineKeyHandler -Key DownArrow -Function HistorySearchForward

Para ver el historial de comandos en PowerShell, debe ejecutar el comando Get-History; sin embargo, hay un paso muy importante para asegurarse de que se guarde su historial. NO PUEDE cerrar PowerShell haciendo clic en el botón cerrar. En su lugar, siempre debe cerrarlo con el comando de salida.

  Cómo hacer que Shake encuentre el cursor en Windows 10

Puede utilizar las teclas de flecha hacia arriba y hacia abajo para recorrer los comandos anteriores.