PowerShell w systemie Windows 10 ma zdolność do rejestrowania historii wszystkich poleceń wykonanych w aktualnej sesji, ale dla wielu użytkowników to może nie być wystarczające. Często potrzebują oni dostępu do historii poleceń z wcześniejszych sesji. W przypadku, gdy potrzebujesz pełnej historii poleceń w PowerShell, istnieje skrypt oraz plik dziennika, które mogą Ci w tym pomóc.
Historia poleceń – aktualna sesja
Dla użytkowników PowerShell 5, aby uzyskać historię poleceń z bieżącej sesji, wystarczy uruchomić poniższe polecenie:
Get-History
Domyślnie PowerShell przechowuje do 50 ostatnich poleceń, jednak można to dostosować, aby zapamiętywać więcej. Aby to zrobić, otwórz PowerShell, kliknij prawym przyciskiem myszy na pasek tytułowy, a następnie wybierz Właściwości. W oknie Właściwości przejdź do zakładki Opcje. W sekcji Historia poleceń zmień wartość domyślną z 50 na większą.
Dziennik historii PowerShell
Aby uzyskać dostęp do dziennika historii, najpierw zainstaluj moduł PSReadLine, wykonując poniższe polecenie:
Install-Module PSReadLine
Po zainstalowaniu modułu uruchom poniższe polecenie, aby uzyskać lokalizację pliku, która zawiera pełną historię wszystkich poleceń uruchomionych w PowerShell:
(Get-PSReadlineOption).HistorySavePath
Historia poleceń PowerShell między sesjami
To rozwiązanie jest nieco bardziej skomplikowane, ale jego wdrożenie przynosi korzyści. Inspiracją jest Intel. Rozpocznij od sprawdzenia, czy w lokalizacji poniżej znajduje się plik o nazwie Microsoft.PowerShell_profile.ps1:
C:\Users\\Documents\WindowsPowerShell
Jeśli plik nie istnieje, otwórz PowerShell i wprowadź poniższe polecenie, co spowoduje otwarcie pliku profilu w Notatniku. Jeśli plik nie istnieje, PowerShell zapyta, czy chcesz go stworzyć – zgódź się na to.
notepad $Profile
Po zamknięciu Notatnika uruchom polecenie, aby sprawdzić, czy korzystasz z PowerShell 5:
$PSVersionTable.PSVersion
Następnie ustaw zasady wykonywania na RemoteSigned, używając polecenia:
Set-ExecutionPolicy RemoteSigned
Musisz również zainstalować moduły PsUrl oraz PSReadline. Możesz to zrobić za pomocą poniższych poleceń. Jeśli napotkasz błąd, spróbuj zainstalować je ręcznie zgodnie z instrukcjami na stronach, lub dodaj repozytorium do zaufanych repozytoriów i spróbuj ponownie.
Install-Module PsUrl
Install-Module PSReadline
Po zainstalowaniu tych modułów, otwórz plik:
C:\Users\\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1
Następnie wklej poniższy kod do pliku i zapisz zmiany:
$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 sprawdzić historię poleceń w PowerShell, wystarczy użyć polecenia Get-History. Jednak kluczowym krokiem jest upewnienie się, że historia została poprawnie zapisana. Należy unikać zamykania PowerShell przy użyciu przycisku zamknięcia okna; zamiast tego zawsze należy używać polecenia exit.
Możesz używać klawiszy strzałek w górę i w dół, aby przeglądać poprzednie polecenia.
newsblog.pl
Maciej – redaktor, pasjonat technologii i samozwańczy pogromca błędów w systemie Windows. Zna Linuxa lepiej niż własną lodówkę, a kawa to jego główne źródło zasilania. Pisze, testuje, naprawia – i czasem nawet wyłącza i włącza ponownie. W wolnych chwilach udaje, że odpoczywa, ale i tak kończy z laptopem na kolanach.