PowerShell unter Windows 10 kann Ihnen einen Verlauf aller Befehle geben, die Sie in der aktuellen Sitzung ausgeführt haben, aber für viele Benutzer ist dies nicht genug. Sie benötigen einen Verlauf der Befehle, die über Sitzungen hinweg ausgeführt wurden. Wenn Sie den PowerShell-Befehlsverlauf abrufen müssen und der Verlauf für die aktuelle Sitzung allein nicht ausreicht, gibt es ein Skript und eine Protokolldatei, die Ihnen helfen können.
Inhaltsverzeichnis
Befehlsverlauf Aktuelle Sitzung
Wenn Sie PowerShell 5 ausführen, können Sie den Befehlsverlauf für die aktuelle Sitzung abrufen, indem Sie den folgenden Befehl ausführen;
Get-History
Standardmäßig kann PowerShell bis zu 50 Befehle speichern, aber Sie können es ändern, um mehr zu speichern. Öffnen Sie PowerShell und klicken Sie mit der rechten Maustaste auf die Titelleiste. Gehen Sie im Kontextmenü zu Eigenschaften. Wechseln Sie im Eigenschaftenfenster zur Registerkarte Optionen. Sie sehen einen Abschnitt Befehlsverlauf, in dem der Standardwert auf 50 eingestellt ist. Ändern Sie ihn auf einen höheren Wert.
PowerShell-Verlaufsprotokoll
Um das Verlaufsprotokoll anzuzeigen, müssen Sie zuerst das PSReadLine-Modul mit dem folgenden Befehl installieren;
Install-Module PSReadLine
Führen Sie als Nächstes den folgenden Befehl aus und es wird ein Dateispeicherort zurückgegeben. Die Datei an diesem Speicherort gibt Ihnen einen vollständigen Verlauf aller Befehle, die Sie in PowerShell ausgeführt haben.
(Get-PSReadlineOption).HistorySavePath
Sitzungsübergreifender PowerShell-Befehlsverlauf
Dies ist ein etwas langwieriger Prozess, aber es lohnt sich. Diese Lösung kommt von Intel. Öffnen Sie zunächst den folgenden Speicherort und prüfen Sie, ob sich an diesem Speicherort eine Datei mit dem Namen Microsoft.PowerShell_profile.ps1 befindet.
C:Users<username>DocumentsWindowsPowerShell
Wenn dort keine Datei vorhanden ist, öffnen Sie PowerShell und führen Sie den folgenden Befehl aus. Es öffnet Ihre Profildatei in Notepad, aber diese Datei existiert nicht, und PowerShell teilt Ihnen dies mit und fragt, ob Sie sie erstellen möchten. Erlauben Sie ihm, die Datei zu erstellen.
notepad $Profile
Schließen Sie die sich öffnende Notepad-Datei. Führen Sie in PowerShell diesen Befehl aus, um sicherzustellen, dass Sie PowerShell 5 ausführen.
$PSVersionTable.PSVersion
Legen Sie als Nächstes Ihre Ausführungsrichtlinie mit dem folgenden Befehl auf RemoteSigned fest.
set-executionpolicy remotesigned
Als nächstes müssen Sie die installieren PsUrl und PSReadline Module. Sie können sie mit dem folgenden Befehl installieren, wenn Sie jedoch eine Fehlermeldung erhalten, installieren Sie sie einfach manuell durch den auf den verlinkten Seiten beschriebenen Prozess oder versuchen Sie, das Repository als vertrauenswürdiges Repository hinzuzufügen und den Befehl dann erneut auszuführen.
install-module PsUrl
install-module PSReadline
Nachdem diese Module installiert wurden, öffnen Sie diese Datei;
C:Users<username>DocumentsWindowsPowerShellMicrosoft.PowerShell_profile.ps1
Fügen Sie Folgendes in diese Datei ein und speichern Sie sie.
$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
Um den Befehlsverlauf in PowerShell anzuzeigen, müssen Sie den Befehl Get-History ausführen, es gibt jedoch einen sehr wichtigen Schritt, um sicherzustellen, dass Ihr Verlauf gespeichert wird. Sie können PowerShell NICHT schließen, indem Sie auf die Schaltfläche „Schließen“ klicken. Stattdessen müssen Sie es immer mit dem Exit-Befehl schließen.
Sie können die Aufwärts- und Abwärtspfeiltasten verwenden, um durch die vorherigen Befehle zu blättern.