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.
Tabla de contenido
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.
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.
Puede utilizar las teclas de flecha hacia arriba y hacia abajo para recorrer los comandos anteriores.