PowerShell-Tipp: PowerShell-Cmdlet-Verlauf mit PSReadLine meistern

PowerShell ist ein leistungsstarkes Tool für Administratoren und Entwickler, aber sich wiederholende Aufgaben können Sie ausbremsen. Indem Sie Ihren Cmdlet-Verlauf verwalten und die Funktionen von PSReadLine, können Sie Ihren Workflow optimieren, Zeit sparen und Ihre Produktivität steigern. Dieser Leitfaden führt Sie durch praktische Tipps und Szenarien, um den PowerShell-Cmdlet-Verlauf und PSReadLine optimal zu nutzen.


Warum die Verwaltung des Cmdlet-Verlaufs wichtig ist

Stellen Sie sich vor, Sie führen wiederholt eine komplexe Abfolge von Befehlen aus oder beheben Fehler in einem Skript, das sich über mehrere Zeilen erstreckt. Anstatt Befehle erneut einzugeben oder alte Skripte zu durchsuchen, können Sie für eine schnelle Wiederverwendung auf Ihren Cmdlet-Verlauf zugreifen. Mit PSReadLine, können Sie noch einen Schritt weiter gehen, indem Sie Ihre Erfahrung anpassen und die prädiktive IntelliSense aktivieren.


Auf den Cmdlet-Verlauf zugreifen

PowerShell speichert Ihren Befehlsverlauf automatisch in einer Datei, sodass Sie ihn leicht nachschlagen oder bearbeiten können. So können Sie darauf zugreifen:

Speicherort der Cmdlet-Verlaufsdatei

Die Cmdlet-Verlaufsdatei befindet sich unter:
C:\Users\%USERPROFILE%\AppData\Roaming\Microsoft\Windows\PowerShell\PSReadLine

Schritte zum Verwalten des Cmdlet-Verlaufs

  1. Datei suchen
    Öffnen Sie den Ordner und suchen Sie die Datei mit dem Namen ConsoleHost_history.txt.
  2. Datei bearbeiten
    Verwenden Sie einen beliebigen Texteditor (z. B. Editor oder VS Code), um Befehle hinzuzufügen, zu entfernen oder zu ändern.
  3. Verknüpfung erstellen
    Erstellen Sie eine Verknüpfung zur Datei auf Ihrem Desktop für den schnellen Zugriff.

Typischer Anwendungsfall

Ein typisches Szenario ist die Wiederverwendung einer Befehlsabfolge für die Serverwartung. Wenn Sie beispielsweise häufig Befehle ausführen, um Dienste neu zu starten, Protokolle zu prüfen oder Einstellungen zu konfigurieren, können Sie diese Befehle für den schnellen Zugriff in der Verlaufsdatei speichern.


Das volle Potenzial von PSReadLine ausschöpfen

PSReadLine ist ein Modul, das die PowerShell-Konsolenerfahrung verbessert. Es bietet Funktionen wie Syntaxhervorhebung, prädiktive IntelliSense und benutzerdefinierte Tastenbelegungen und erleichtert so die Arbeit mit PowerShell.

Hauptfunktionen von PSReadLine

  1. Syntaxhervorhebung
    Hebt Syntaxfehler hervor und macht Befehle besser lesbar.
  2. Prädiktive IntelliSense
    Schlägt Befehle automatisch anhand Ihres Verlaufs oder von Plug-ins vor.
  3. Benutzerdefinierte Tastenbelegungen
    Ordnen Sie Tasten benutzerdefinierten Aktionen für eine schnellere Ausführung zu.
  4. Mehrzeilige Bearbeitung
    Bearbeiten und führen Sie mehrzeilige Befehle nahtlos aus.
  5. Dynamische Hilfeanzeige
    Zeigt Hilfeinformationen direkt in der Konsole an, ohne dass Sie den Überblick verlieren.

Praktische Szenarien für die Verwendung von PSReadLine

Szenario 1: Sich wiederholende Aufgaben automatisieren

Nehmen wir an, Sie starten häufig einen Webserver neu und prüfen seinen Status. Anstatt diese Befehle jedes Mal einzugeben, können Sie sie im Verlauf speichern oder einer Tastenkombination zuordnen.

Restart-Service -Name "WebServer"
Get-Service -Name "WebServer" | Select-Object Status

Szenario 2: Prädiktive IntelliSense für schnelleres Auffinden von Befehlen

Die prädiktive IntelliSense hilft Ihnen, Befehle schnell zu finden und auszuführen. Wenn Sie beispielsweise häufig Get-Process, werden beim Eingeben von „Get“ Befehle aus Ihrem Verlauf vorgeschlagen, darunter Get-Process.

So aktivieren Sie die prädiktive IntelliSense:

Set-PSReadLineOption -PredictionSource History

Szenario 3: Benutzerdefinierte Tastenbelegungen für mehr Effizienz

Sie können eine Taste belegen, um schnell rückwärts durch Ihren Befehlsverlauf zu suchen:

Set-PSReadLineKeyHandler -Key UpArrow -Function HistorySearchBackward

Oder erstellen Sie eine benutzerdefinierte Belegung, um einen Befehl im Verlauf zu speichern, ohne ihn auszuführen:

$parameters = @{
    Key = 'Alt+w'
    ScriptBlock = {
      $line = $null
      $cursor = $null
      [Microsoft.PowerShell.PSConsoleReadLine]::GetBufferState([ref]$line, [ref]$cursor)
      [Microsoft.PowerShell.PSConsoleReadLine]::AddToHistory($line)
      [Microsoft.PowerShell.PSConsoleReadLine]::RevertLine()
    }
}
Set-PSReadLineKeyHandler @parameters

Szenario 4: Sichere Verwaltung des Befehlsverlaufs

PSReadLine filtert vertrauliche Daten wie Kennwörter und Token aus der Verlaufsdatei, um Ihre Sicherheit zu schützen. Zum Beispiel:

$password = 'MySecurePassword'
Set-Secret -Name "MySecret" -SecretValue $password

Diese Befehle werden nicht in der Verlaufsdatei gespeichert.


PSReadLine installieren

PSReadLine ist über den PowerShell-Katalog verfügbar. Um es zu installieren, führen Sie Folgendes aus:

Install-Module -Name PSReadLine -AllowClobber -Force

Hinweis: PSReadLine erfordert PowerShell 5.1 oder neuer. Es funktioniert mit Windows Terminal, Visual Studio Code und dem Standard-Windows-Konsolenhost, aber nicht mit Windows PowerShell ISE.


Versionshighlights

PSReadLine hat sich seit seiner ersten Veröffentlichung in Windows PowerShell 5.1 erheblich weiterentwickelt. Zu den wichtigsten Versionen gehören:

  • v2.3.6: Mit PowerShell 7.4.7 und 7.5.0 ausgeliefert
  • v2.3.4: führte Verbesserungen bei der Bereinigung vertraulicher Daten ein.
  • v2.2.6: verbesserte mehrzeilige Bearbeitung und prädiktive IntelliSense.

Weitere Informationen finden Sie in den Versionshinweisen zu about_PSReadLine.


Mehr über PSReadLine erfahren

Weitere Funktionen und Beispiele finden Sie in der offiziellen Dokumentation:

Kommentar hinterlassen