PowerShell på Windows 10 kan give dig en historik over hver kommando, du har udført i den aktuelle session, men for mange brugere er dette ikke nok. De har brug for en historie med kommandoer udført på tværs af sessioner. Hvis du har brug for at få PowerShell-kommandohistorikken, og historikken for den aktuelle session alene ikke gør tricket, er der et script og en logfil, der kan hjælpe dig.
Indholdsfortegnelse
Kommandohistorik Aktuel session
Hvis du kører PowerShell 5, kan du få kommandohistorikken for den aktuelle session ved at køre følgende kommando;
Get-History
Som standard kan PowerShell gemme op til 50 kommandoer, men du kan ændre det for at gemme flere. Åbn PowerShell, og højreklik på titellinjen. Fra kontekstmenuen skal du gå til Egenskaber. Gå til fanen Indstillinger i vinduet Egenskaber. Du vil se en kommandohistoriksektion, hvor standarden er sat til 50. Skift den til en højere værdi.
PowerShell-historiklog
For at se historikloggen skal du først installere PSReadLine-modulet med følgende kommando;
Install-Module PSReadLine
Kør derefter følgende kommando, og den vil returnere en filplacering. Filen på denne placering vil give dig en komplet historik over hver kommando, du har kørt i PowerShell.
(Get-PSReadlineOption).HistorySavePath
Cross-session PowerShell-kommandohistorik
Dette er en lidt lang proces, men det er det værd. Denne løsning kommer fra Intel. Åbn først følgende placering og kontroller, om der er en fil med navnet Microsoft.PowerShell_profile.ps1 på denne placering.
C:Users<username>DocumentsWindowsPowerShell
Hvis der ikke er nogen fil der, skal du åbne PowerShell og køre følgende kommando. Den åbner din profilfil i Notesblok, men den fil eksisterer ikke, og PowerShell vil fortælle dig så meget og spørge, om du vil oprette den. Tillad den at oprette filen.
notepad $Profile
Luk notesblokfilen, der åbnes. Kør denne kommando i PowerShell for at sikre, at du kører PowerShell 5.
$PSVersionTable.PSVersion
Indstil derefter din udførelsespolitik til RemoteSigned med følgende kommando.
set-executionpolicy remotesigned
Dernæst skal du installere PsUrl og PSReadline moduler. Du kan installere dem med følgende kommando, men hvis du får en fejl, skal du bare installere dem manuelt ved den proces, der er beskrevet på de linkede sider, eller prøve at tilføje depotet som et pålideligt depot og derefter køre kommandoen igen.
install-module PsUrl
install-module PSReadline
Nu hvor disse moduler er blevet installeret, skal du åbne denne fil;
C:Users<username>DocumentsWindowsPowerShellMicrosoft.PowerShell_profile.ps1
Indsæt følgende i denne fil, og gem den.
$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
For at se kommandohistorikken i PowerShell skal du køre kommandoen Get-History, men der er et meget afgørende trin for at sikre, at din historie er gemt. Du KAN IKKE lukke PowerShell ved at klikke på lukkeknappen. I stedet skal du altid lukke den med exit-kommandoen.
Du kan bruge piletasterne op og ned til at bladre gennem de foregående kommandoer.