PowerShell ve Windows 10 vám může dát historiikaždého příkazu, který jste provedli v aktuální relaci, ale pro mnoho uživatelů to nestačí. Potřebují historii příkazů prováděných během relací. Pokud potřebujete získat historii příkazů PowerShell a historie pouze pro aktuální relaci nepředstavuje trik, existuje skript a soubor protokolu, který vám může pomoci.
Historie příkazů Aktuální relace
Pokud používáte PowerShell 5, můžete získat historii příkazů pro aktuální relaci spuštěním následujícího příkazu;
Get-History
Ve výchozím nastavení může PowerShell uložit až 50 příkazůale můžete ji změnit a ušetřit více. Otevřete PowerShell a klepněte pravým tlačítkem myši na záhlaví. Z kontextové nabídky přejděte na Vlastnosti. V okně Vlastnosti přejděte na kartu Možnosti. Uvidíte sekci Historie příkazů, kde je výchozí hodnota nastavena na 50. Změňte ji na vyšší hodnotu.

Protokol historie PowerShell
Chcete-li zobrazit protokol historie, musíte nejprve nainstalovat modul PSReadLine pomocí následujícího příkazu;
Install-Module PSReadLine
Dále spusťte následující příkaz a vrátí umístění souboru. Soubor v tomto umístění vám poskytne úplnou historii každého příkazu, který jste spustili v prostředí PowerShell.
(Get-PSReadlineOption).HistorySavePath

Historie příkazů PowerShell napříč relacemi
Je to trochu dlouhý proces, ale stojí za to. Toto řešení pochází od společnosti Intel. Nejprve otevřete následující umístění a zkontrolujte, zda je v tomto umístění soubor s názvem Microsoft.PowerShell_profile.ps1.
C:Users<username>DocumentsWindowsPowerShell
Pokud tam není žádný soubor, otevřete PowerShell a spusťtenásledující příkaz. Otevře svůj soubor profilu v programu Poznámkový blok, ale tento soubor neexistuje a PowerShell vám to řekne tolik a zeptá se, zda jej chcete vytvořit. Nechte jej vytvořit soubor.
notepad $Profile
Zavřete soubor poznámkového bloku, který se otevře. V PowerShell spusťte tento příkaz a ujistěte se, že používáte PowerShell 5.
$PSVersionTable.PSVersion
Poté pomocí následujícího příkazu nastavte zásady provádění na RemoteSigned.
set-executionpolicy remotesigned
Dále je třeba nainstalovat PsUrl aModuly PSReadline. Můžete je však nainstalovat pomocí následujícího příkazu, ale pokud narazíte na chybu, stačí je nainstalovat ručně postupem popsaným na propojených stránkách, nebo zkuste přidat úložiště jako důvěryhodné úložiště a poté příkaz spustit znovu.
install-module PsUrl
install-module PSReadline
Po nainstalování těchto modulů otevřete tento soubor;
C:Users<username>DocumentsWindowsPowerShellMicrosoft.PowerShell_profile.ps1
Vložte následující soubor do tohoto souboru a uložte jej.
$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
Chcete-li zobrazit historii příkazů v prostředí PowerShell,musíte spustit příkaz Get-History, existuje však jeden velmi důležitý krok k zajištění toho, aby byla vaše historie uložena. NEMŮŽETE zavřít PowerShell klepnutím na tlačítko Zavřít. Místo toho ji musíte vždy zavřít příkazem exit.

Pomocí kláves se šipkami nahoru a dolů můžete procházet předchozí příkazy.
Komentáře