Jak získat historii příkazů PowerShell ve Windows 10

PowerShell ve Windows 10 vám může poskytnout historii kaž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 napříč relacemi. Pokud potřebujete získat historii příkazů PowerShell a historie pro aktuální relaci sama o sobě nestačí, existuje skript a soubor protokolu, které vám mohou 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 to změnit a uložit více. Otevřete PowerShell a klikněte pravým tlačítkem 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.

  Jak spustit Ubuntu a Bash ve Windows 10

Protokol historie prostředí 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 kompletní historii všech příkazů, které jste spustili v PowerShellu.

(Get-PSReadlineOption).HistorySavePath

Historie příkazů PowerShell napříč relacemi

Je to trochu zdlouhavý proces, ale stojí to za to. Toto řešení pochází z Intel. Nejprve otevřete následující umístění a zkontrolujte, zda se v tomto umístění nenachází soubor s názvem Microsoft.PowerShell_profile.ps1.

C:Users<username>DocumentsWindowsPowerShell

Pokud tam žádný soubor není, otevřete PowerShell a spusťte následující příkaz. Otevře se váš profilový soubor v Poznámkovém bloku, ale tento soubor neexistuje a PowerShell vám to řekne a zeptá se, zda jej chcete vytvořit. Umožněte mu vytvořit soubor.

notepad $Profile

Zavřete soubor poznámkového bloku, který se otevře. V PowerShellu spusťte tento příkaz, abyste se ujistili, že používáte PowerShell 5.

$PSVersionTable.PSVersion

Dále nastavte zásadu provádění na RemoteSigned pomocí následujícího příkazu.

set-executionpolicy remotesigned

Dále je třeba nainstalovat PsUrl a PSReadline moduly. Můžete je nainstalovat pomocí následujícího příkazu, pokud se však zobrazí chyba, stačí je nainstalovat ručně postupem uvedeným na odkazovaných stránkách nebo zkuste úložiště přidat jako důvěryhodné úložiště a poté příkaz spustit znovu.

install-module PsUrl
install-module PSReadline

Nyní, když jsou tyto moduly nainstalovány, otevřete tento soubor;

C:Users<username>DocumentsWindowsPowerShellMicrosoft.PowerShell_profile.ps1

Do tohoto souboru vložte následující 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 PowerShellu, musíte spustit příkaz Get-History, ale je zde jeden velmi zásadní krok, jak zajistit, aby byla vaše historie uložena. PowerShell NELZE zavřít kliknutím na tlačítko Zavřít. Místo toho jej musíte vždy zavřít příkazem exit.

  Jak změnit přihlašovací jméno v systému Windows 10

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