Aqui está uma abordagem alternativa que persiste seu histórico sem usar um atalho diferente do PowerShell.
Extraído de link
Abra o PowerShell no modo de administrador e descubra qual versão do PowerShell você tem executando o seguinte comando:
$PSVersionTable.PSVersion
Você precisará de uma versão superior a 3 para executar isso. Se você tiver uma versão mais antiga, atualize-a.
Permitir que o PowerShell importe ou use scripts, incluindo módulos, executando o seguinte comando:
set-executionpolicy remotesigned
Instale o PsGet e instale os módulos necessários, executando os seguintes comandos:
(new-object Net.WebClient).DownloadString("http://psget.net/GetPsGet.ps1") | iex
import-module PsGet
install-module PsUrl
install-module PSReadline
Crie o seguinte script
$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
Salve o arquivo como C:\Users\<username>\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1
, onde você deve substituir o nome correto da pasta no seu PC. Não se esqueça de alterar a opção "salvar como tipo" para todos os arquivos.
Feche o PowerShell e abra-o novamente para que ele comece a usar o script que salvamos.
De agora em diante,
get-history
Recuperará as últimas centenas de comandos digitados e você poderá rolar entre eles com as teclas de seta.