Come cancellare la history di Powershell (ma davvero)
Capita di avere la necessità di cancellare la history dei comandi Powershell inviati con un account. A noi, per esempio, è capitato quando abbiamo dovuto preparare dei template per le virtual machine dei nostri clienti ed era necessario attivare un software prima di completare il template.
Sfortunatamente questa attivazione avveniva per mezzo console e bisogna quindi inserire un comando con il codice di attivazione. Questo faceva si che il codice potesse poi essere visibile per gli utenti che usavano quel template che potevano accedere alla history semplicemente premendo PgUp. Se si cerca una soluzione si scopre che Powershell ha un comando per la cancellazione della history:
Clear-History
Tuttavia non tutti i comandi vengono rimossi. Alcuni vengono rimossi, altri no oppure proprio nessuno. Probabilmente non vengono rimosse le invocazioni di eseguibili e comandi esterni. Ad ogni modo, questo lascia la history, o parte di essa, disponibile per gli altri utenti.
C’è però un comando che consente di visualizzare quale sia il file in cui Powershell memorizza la history dell’utente:
PS C:\Users\Administrator> (Get-PSReadlineOption).HistorySavePath C:\Users\Administrator\AppData\Roaming\Microsoft\Windows\PowerShell\PSReadLine\ConsoleHost_history.txt
Il file mostrato è quello della history. Basta quindi modificarl e rimuovere le righe che non si vogliono rendere disponibili per gli altri utenti.
Un trucco semplice ma rimane il mistero sul perché esista un comando dedicato che non funziona come ci si aspetterebbe.
Leave a Response