PowerShell w Windows 10 może dać ci historiękażdego polecenia wykonanego w bieżącej sesji, jednak dla wielu użytkowników to nie wystarczy. Potrzebują historii poleceń wykonywanych między sesjami. Jeśli potrzebujesz uzyskać historię poleceń PowerShell, a sama historia dla bieżącej sesji nie rozwiązuje problemu, istnieje skrypt i plik dziennika, który może ci pomóc.
Historia poleceń Bieżąca sesja
Jeśli korzystasz z programu PowerShell 5, możesz uzyskać 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ź na zakładkę Opcje. Zobaczysz sekcję Historia poleceń, w której domyślną wartością jest 50. Zmień ją na wyższą wartość.
Dziennik historii PowerShell
Aby wyświetlić dziennik historii, musisz 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 PowerShell.
(Get-PSReadlineOption).HistorySavePath
Historia poleceń PowerShell między sesjami
To trochę długi proces, ale warto. To rozwiązanie pochodzi od Intela. 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 uruchomnastę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 plik notatnika, który zostanie otwarty. W PowerShell uruchom to polecenie, aby upewnić się, że korzystasz z PowerShell 5.
$PSVersionTable.PSVersion
Następnie ustaw swoją zasadę wykonywania na RemoteSigned za pomocą następującego polecenia.
set-executionpolicy remotesigned
Następnie musisz zainstalować PsUrl iModuły PSReadline. Możesz zainstalować je za pomocą następującego polecenia, jeśli wystąpi 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 uruchomić 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ące elementy 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, ale jest jeden bardzo ważny krok, aby upewnić się, że Twoja historia została zapisana. Nie można zamknąć programu PowerShell, klikając przycisk zamykania. Zamiast tego zawsze należy go zamknąć za pomocą polecenia wyjścia.
Za pomocą klawiszy strzałek w górę i w dół można przełączać poprzednie polecenia.
Komentarze