In der Windows PowerShell gibt es neben den Pfeiltasten "Pfeil nach oben" bzw. "Pfeil nach unten", die durch die letzten Befehle navigieren, noch weitere Möglichkeiten, um durch bereits abgesetzte Befehle zu navigieren. Dabei gibt es zwei verschiedene Formen der History in PowerShell: Eine ist auf die Dauer der Session beschränkt und die Zweite wird auch darüber hinaus gespeichert.
Inhaltsverzeichnis
Temporäre History
In der temporären History werden alle eingegebenen Befehle nur für die Dauer der Sitzung gespeichert. Eine Liste dieser Befehle lässt sich mit folgendem Befehl ausgeben:
Get-History

Wenn ein Befehl gesucht werden soll, der einen bestimmten Teilstring enthält, kann folgender Befehl verwendet werden:
Get-History | Select-String "ping"

Da der obige Befehl keine IDs ausgibt, die eventuell gebraucht werden, kann der Befehl wie folgt abgeändert werden (LineNumber entspricht dabei der ID des Befehls):
Get-History | Select-String "ping" | Format-Table -Property LineNumber, Line
Wer die Überschriften jetzt noch etwas schöner haben möchte, kann diese auch noch anpassen:
Get-History | Select-String "ping" | Format-Table -Property @{Name="ID";Expression={$_.LineNumber}}, @{Name="Befehl";Expression={$_.Line}}

Ein bestimmter Befehl aus der Liste lässt sich schließlich auch mit Hilfe seiner ID erneut ausführen:
Invoke-History -Id 2
In diesem Beispiel würde der Befehle hostname ausgeführt werden.
Soll die temporäre History geleert werden, kann folgender Befehl verwendet werden:
Clear-History
Gesamte History
Darüber hinaus gibt es noch eine History, die das Beenden der Session überlebt. Diese Befehle werden in einer Textdatei im Userprofil gespeichert: %AppData%\Microsoft\Windows\PowerShell\PSReadline\ConsoleHost_history.txt
Mit folgendem Befehl lassen sich diese Befehle direkt in der PowerShell anzeigen:
Get-Content (Get-PSReadlineOption).HistorySavePath
Löschen lässt sich diese History mit folgendem Befehl:
Remove-Item (Get-PSReadlineOption).HistorySavePath
Befehle aus History durchsuchen
Ähnlich wie in der Linux-Shell lassen sich Befehle auch durchsuchen. Es reicht die Tasten Strg + R zu drücken und der Anfang des Befehls einzugeben:

Im oberen Beispiel habe ich get eingegeben und mir wird oberhalb direkt ein gefundener Befehl angezeigt. Mit Tabulator könnte ich den Befehl übernehmen, um ihn weiter zu bearbeiten oder auszuführen.
Weiterführende Link
https://msdn.microsoft.com/en-us/powershell/reference/5.1/microsoft.powershell.core/add-history
Quellen
https://blogs.msdn.microsoft.com/stevelasker/2016/03/25/clear-history-powershell-doesnt-clear-the-history-3/