Oto alternatywne podejście, które utrwala twoją historię bez użycia innego skrótu PowerShell.
Zaczerpnięte z
https://software.intel.com/en-us/blogs/2014/06/17/giving-powershell-a-persistent-history-of-commands
Otwórz PowerShell w trybie administratora i dowiedz się, którą wersję programu PowerShell posiadasz, uruchamiając następujące polecenie:
$PSVersionTable.PSVersion
Aby uruchomić tę wersję, potrzebujesz wersji wyższej niż 3. Jeśli masz starszą wersję, zaktualizuj ją.
Zezwól PowerShellowi na importowanie lub używanie skryptów, w tym modułów, przez uruchomienie następującego polecenia:
set-executionpolicy remotesigned
Zainstaluj PsGet i zainstaluj potrzebne moduły, wykonując następujące polecenia:
(new-object Net.WebClient).DownloadString("http://psget.net/GetPsGet.ps1") | iex
import-module PsGet
install-module PsUrl
install-module PSReadline
Utwórz następujący skrypt
$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
Zapisz plik jako C:\Users\<username>\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1
, gdzie należy zastąpić poprawną nazwą folderu na komputerze. Nie zapomnij zmienić opcji „zapisz jako typ” dla wszystkich plików.
Zamknij PowerShell i otwórz go ponownie, aby zaczął używać zapisanego skryptu.
Od teraz,
get-history
Pobiera ostatnie kilkaset wpisanych poleceń i możesz je przewijać za pomocą klawiszy strzałek.