- - Come ottenere la cronologia dei comandi di PowerShell su Windows 10

Come ottenere la cronologia dei comandi di PowerShell su Windows 10

PowerShell su Windows 10 può darti una cronologiadi ogni comando che hai eseguito nella sessione corrente, tuttavia, per molti utenti questo non è sufficiente. Hanno bisogno di una cronologia dei comandi eseguiti attraverso le sessioni. Se è necessario ottenere la cronologia dei comandi di PowerShell e la cronologia per la sessione corrente da sola non fa il trucco, c'è uno script e un file di registro che possono aiutarti.

Cronologia dei comandi Sessione corrente

Se si esegue PowerShell 5, è possibile ottenere la cronologia dei comandi per la sessione corrente eseguendo il comando seguente;

Get-History

Per impostazione predefinita, PowerShell può salvare fino a 50 comandima puoi cambiarlo per risparmiare di più. Apri PowerShell e fai clic con il pulsante destro del mouse sulla barra del titolo. Dal menu contestuale, vai su Proprietà. Nella finestra Proprietà, vai alla scheda Opzioni. Vedrai una sezione Cronologia comandi in cui il valore predefinito è 50. Modificalo con un valore più alto.

Registro cronologia di PowerShell

Per visualizzare il registro della cronologia, devi prima installare il modulo PSReadLine con il seguente comando;

Install-Module PSReadLine

Quindi, esegui il comando seguente e restituirà un percorso di file. Il file in questa posizione ti fornirà una cronologia completa di ogni comando che hai eseguito in PowerShell.

(Get-PSReadlineOption).HistorySavePath

Cronologia dei comandi di PowerShell tra sessioni

È un processo un po 'lungo ma ne vale la pena. Questa soluzione proviene da Intel. Per prima cosa aprire il seguente percorso e verificare se esiste un file denominato Microsoft.PowerShell_profile.ps1 in questo percorso.

C:Users<username>DocumentsWindowsPowerShell

Se non è presente alcun file, apri PowerShell ed eseguiil seguente comando. Si aprirà il tuo file di profilo nel Blocco note ma quel file non esiste e PowerShell ti dirà altrettanto e ti chiederà se vuoi crearlo. Consentire a creare il file.

notepad $Profile

Chiudi il file del blocco note che si apre. In PowerShell, esegui questo comando per assicurarti di eseguire PowerShell 5.

$PSVersionTable.PSVersion

Successivamente, imposta la tua politica di esecuzione su RemoteSigned con il seguente comando.

set-executionpolicy remotesigned

Successivamente, è necessario installare PsUrl eModuli PSReadline. È possibile installarli con il comando seguente, tuttavia, se si riceve un errore, installarli manualmente tramite il processo descritto nelle pagine collegate o provare ad aggiungere il repository come repository attendibile e quindi eseguire nuovamente il comando.

install-module PsUrl
install-module PSReadline

Ora che quei moduli sono stati installati, apri questo file;

C:Users<username>DocumentsWindowsPowerShellMicrosoft.PowerShell_profile.ps1

Incolla quanto segue all'interno di questo file e salvalo.

$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

Per visualizzare la cronologia dei comandi in PowerShell,è necessario eseguire il comando Get-History, tuttavia esiste un passaggio cruciale per assicurarsi che la cronologia venga salvata. NON PUOI chiudere PowerShell facendo clic sul pulsante Chiudi. Invece devi sempre chiuderlo con il comando exit.

È possibile utilizzare i tasti freccia Su e Giù per scorrere i comandi precedenti.

Commenti