Windows PowerShell è incredibilmente facile da amministrare dopo aver appreso le basi del linguaggio di scripting. Nonostante ciò, gli utenti potrebbero riscontrare alcuni singhiozzi qua e là. Molti di loro hanno riferito che PowerShell non accetta il collegamento Ctrl + R per mostrare la ricerca nella cronologia dei comandi.

Poiché ciò significa essenzialmente che gli utenti non possono più godere della funzione cronologia, è sicuramente spiacevole. PowerShell ha una cronologia dei comandi incorporata abbastanza grande per aiutarti con quegli elenchi complessi che hai inserito nel tempo, ma se non riesci a usarlo, questo è un grosso problema.

Se anche tu hai questo problema, per aggirare il problema ti consigliamo quanto segue.

Cosa posso fare quando la cronologia di PowerShell non funziona?

1. Controllare il gruppo PSReadLine

Molti altri hanno riscontrato lo stesso problema dopo l’aggiornamento a Windows 10. Potresti non sapere che hai installato PSReadLine, ma viene fornito in bundle con Windows 10, quindi accetta che sia lì.

Piaccia o no, sostituisce praticamente le funzionalità della cronologia dei comandi vecchio stile con funzionalità più sofisticate. La funzione della cronologia dei comandi in PowerShell non è incorporata nel framework di gestione di Windows stesso, ma si basa precisamente sul modulo PSReadLine di terze parti.

Per confermare che questa volta ha qualche coinvolgimento, prova a eseguire Get-PSReadLineOption e nota se ricevi questo errore riguardo all’assemblaggio PSReadLine:

Get-PSReadLineOption: l’inizializzatore del tipo per “Microsoft.PowerShell.PSConsoleReadLine” ha generato un’eccezione.
Alla riga: 1 carattere: 1
+ Get-PSReadLineOption
+ ~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo: NotSpecified: (:) [Get-PSReadLineOption], TypeInitializationException
+ FullyQualifiedErrorId: System.TypeInitializationException, Microsoft.PowerShell.GetPSReadLineOption

Se vedi anche le righe sopra, chiudi PowerShell, quindi cambia il layout della tastiera in it-IT. Riaprilo e controlla se la cronologia di PowerShell funziona di nuovo.

Leggi anche  Il completamento automatico di PowerShell non funziona? Prova questi metodi

2. Esegui il downgrade di PSReadLine a 1.2

L’aggiornamento di PSReadLine a una nuova versione potrebbe anche causare questo errore che stai riscontrando. Ciò accade soprattutto se si esegue PowerShell con un layout di tastiera non statunitense.

Tuttavia, se i passaggi precedenti non fanno alcuna differenza, puoi anche provare a eseguire il downgrade di PSReadLine a 1.2.


3. Prova i cmdlet alternativi per visualizzare la cronologia

Supponiamo di aver digitato ed eseguito alcuni complicati comandi di PowerShell e di dare un’occhiata ora. Dovresti essere in grado di sfogliare l’intera cronologia dei comandi di PowerShell usando le frecce su / giù.

Come sempre, puoi anche utilizzare diversi cmdlet inclusi per lavorare con la tua cronologia. Per visualizzare la cronologia dei comandi digitati, eseguire il cmdlet seguente:
Get-History

È possibile cercare ulteriormente la cronologia eseguendo il piping dell’output risultante nel cmdlet Select-String. Non dimenticare di sostituire “Cerca” nel cmdlet di seguito con il testo effettivo che desideri cercare:
Ottieni storia | Select-String -Pattern “Cerca”

Per visualizzare informazioni più dettagliate sui comandi eseguiti in precedenza, incluso lo stato del comando o l’ora di inizio / fine, eseguire invece questo comando:
Ottieni storia | Elenco formati-Proprietà *

Non meno importante, se le cose funzionano e si desidera esportare i comandi dalla sessione corrente in un file, utilizzare il cmdlet Export-Clixml:
Ottieni storia | Export-Clixml -Path c: pscommands_hist.xml


4. Aumentare il numero di comandi ricordati

Ricorda che il buffer della riga di comando conserva solo gli ultimi 50 comandi digitati. Se vuoi di più è il vero problema che stai affrontando, aumenta semplicemente questo numero.

Per realizzarlo, fare clic con il pulsante destro del mouse sulla barra del titolo della finestra del prompt di PowerShell, selezionare Proprietà, quindi cambia semplicemente il valore di Dimensione buffer sotto Cronologia dei comandi.

Leggi anche  Windows Live Mail non sta eliminando i messaggi? Segui questi passi

Una potenziale causa di questo errore è che la cronologia di Powershell è disattivata. Ecco dove potresti essere entrato prima:
% Userprofile% AppDataRoamingMicrosoftWindowsPowerShellPSReadlineConsoleHost_history.txt

Avresti potuto spegnerlo con:
Set-PSReadlineOption –HistorySaveStyle SalvaNiente

Suona qualche campana? Lo stesso vale se stai cercando qualcosa dopo aver cancellato completamente la memoria nella speranza di un nuovo inizio.

Fai solo attenzione: il cmdlet Clear-History non può davvero essere utilizzato per cancellare la cronologia dei comandi. Cancella semplicemente l’elenco dei comandi visualizzati dal cmdlet Get-History.

Seguire le procedure menzionate in questo articolo dovrebbe aiutarti a risolvere il problema riscontrato. Se sei a conoscenza di un altro modo per far funzionare di nuovo la cronologia di PowerShell, informaci nella sezione commenti qui sotto.

LEGGI ANCHE: