PowerShell w systemie Windows 10 może zapewnić historię każdego polecenia wykonanego w bieżącej sesji, jednak dla wielu użytkowników to nie wystarczy. Potrzebują historii poleceń wykonywanych podczas sesji. Jeśli chcesz uzyskać historię poleceń programu PowerShell, a sama historia bieżącej sesji nie wystarczy, istnieje skrypt i plik dziennika, które mogą Ci pomóc.
Spis treści:
Historia poleceń – bieżąca sesja
Jeśli używasz PowerShell 5, możesz pobrać historię poleceń dla bieżącej sesji, uruchamiając następujące polecenie;
Get-History
Domyślnie PowerShell może zapisać do 50 poleceń, ale możesz to zmienić, aby zaoszczędzić więcej. Otwórz PowerShell i kliknij prawym przyciskiem myszy pasek tytułu. Z menu kontekstowego przejdź do Właściwości. W oknie Właściwości przejdź do zakładki Opcje. Zobaczysz sekcję Historia poleceń, w której wartość domyślna to 50. Zmień ją na wyższą.
Dziennik historii programu PowerShell
Aby wyświetlić dziennik historii, należy najpierw zainstalować moduł PSReadLine za pomocą następującego polecenia;
Install-Module PSReadLine
Następnie uruchom następujące polecenie, a zwróci ono lokalizację pliku. Plik w tej lokalizacji zawiera pełną historię każdego polecenia uruchomionego w programie PowerShell.
(Get-PSReadlineOption).HistorySavePath
Historia poleceń programu PowerShell między sesjami
To trochę długi proces, ale warto. To rozwiązanie pochodzi z Intel. Najpierw otwórz następującą lokalizację i sprawdź, czy w tej lokalizacji znajduje się plik o nazwie Microsoft.PowerShell_profile.ps1.
C:Users<username>DocumentsWindowsPowerShell
Jeśli nie ma tam pliku, otwórz PowerShell i uruchom następujące polecenie. Otworzy twój plik profilu w Notatniku, ale ten plik nie istnieje, a PowerShell powie ci tyle i zapyta, czy chcesz go utworzyć. Pozwól mu utworzyć plik.
notepad $Profile
Zamknij otwarty plik notatnika. W programie PowerShell uruchom to polecenie, aby upewnić się, że używasz programu PowerShell 5.
$PSVersionTable.PSVersion
Następnie ustaw zasady wykonywania na RemoteSigned za pomocą następującego polecenia.
set-executionpolicy remotesigned
Następnie musisz zainstalować PsUrl i PSReadline moduły. Możesz je zainstalować za pomocą następującego polecenia, jeśli pojawi się błąd, po prostu zainstaluj je ręcznie zgodnie z procesem opisanym na połączonych stronach lub spróbuj dodać repozytorium jako zaufane repozytorium, a następnie ponownie uruchom polecenie.
install-module PsUrl
install-module PSReadline
Po zainstalowaniu tych modułów otwórz ten plik;
C:Users<username>DocumentsWindowsPowerShellMicrosoft.PowerShell_profile.ps1
Wklej następujący plik do tego pliku i zapisz go.
$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
Aby wyświetlić historię poleceń w PowerShell, musisz uruchomić polecenie Get-History, jednak jest jeden bardzo ważny krok, aby upewnić się, że historia została zapisana. NIE MOŻNA zamknąć programu PowerShell, klikając przycisk zamykania. Zamiast tego zawsze musisz go zamknąć poleceniem exit.
Możesz użyć klawiszy strzałek w górę i w dół, aby przechodzić między poprzednimi poleceniami.