Windows PowerShell besitzt die Möglichkeit auch nach dem Beenden und wieder öffnen die verwendeten Befehle wieder aufzurufen. Möglich macht es die ConsoleHost:history.txt. Diese liegt normalerweise im AppData Ordner, kann aber verschoben und dann Geräteübergreifend genutzt werden.
Möglich macht es OneDrive, wie Pierre Roman in einem Blogbeitrag beschreibt. Wer schon PowerShell 7 in der Stable oder Preview nutzt, kann es ja einmal ausprobieren. Die Windows PowerShell 5 Nutzer müssen hier einen kleinen Umweg gehen.
Benötigt wird das schon integrierte PowerShellGet in der Version 1.6 oder höher, um die Funktion PSReadLine nutzen zu können. Hat man PowerShell 7 (oder Preview) als Administrator gestartet, gibt man folgenden Befehl für die Aktualisierung ein.
Update-Module -Name PowerShellGet
Danach kann man dann den „HistorySavePath“ auslesen und zu diesem Ordner gehen. Dort nun die ConsoleHost_history.txt kopieren und in den OneDrive-Ordner kopieren. Diese Datei muss so eingestellt sein, dass sie immer synchronisiert wird.
Danach geht es mit PowerShell weiter. Hier gibt man nun den Befehl ein, um den Speicherpfad zu ändern.
Set-PSReadLineOption -HistorySavePath X:\Dein_OneDrivePfad\ConsoleHost_history.txt
Jetzt wird das zweite Gerät vorbereitet.
Hierzu werden diese beiden Befehle eingegeben.
Install-Module -Name PSReadLine -AllowPrerelease
Import-Module PSReadLine
Hier wird nun auch die „HistorySavePath“ wie auf dem ersten Gerät in den OneDrive-Ordner gelegt und der Pfad angepasst. Auch hier muss die ConsoleHost_history.txt immer synchronisiert werden, damit es funktioniert.
Ab jetzt könnt ihr PowerShell auf beiden oder mehreren Geräten starten und über die „Pfeil hoch“ oder „Pfeil runter“ die schon verwendeten Befehle erneut aufrufen.
Den Zwischenschritt für die integrierte Windows PowerShell Version 5 könnt ihr hier bzw. hier nachlesen. Die derzeit aktuelle Version von PowerShell findet ihr hier in diesem Beitrag
Und wie funktioniert der „Umweg“ mit PowerShell 5?
@Jens1976
Bei PowerShell 5 muss man zum Aktualisieren von PowerShellGet die Schritte von der folgenden Webseite durchführen:
https://docs.microsoft.com/de-de/powershell/scripting/gallery/installing-psget
Wobei man bei PoweShell 7 einfach nur den Befehl: Update-Module -Name PowerShellGet ausführen muss.
@moinmoin
Pierre Roman schrieb:
Windows PowerShell users need to install the latest PowerShellGet by running the following commands from an elevated Windows PowerShell session.
Nachfolgend hat er aber keine Befehle geschrieben…
Nachfolgend nicht. Aber davor in den docs.ms Beitrag verlinkt, wo es steht.
https://docs.microsoft.com/de-de/powershell/scripting/gallery/installing-psget?view=powershell-7.1
@moinmoin
Worauf ich mit meinen Hinweis hinaus wollte:
Du hattest oben geschrieben:
“Den Zwischenschritt für die integrierte Windows PowerShell Version 5 könnt ihr hier nachlesen.” und verlinkst auf dem Blog Artikel von Pierre Roman. Jemand der nicht so gut mit PowerShell bewandert ist, wird aber dort die Befehle genauso suchen, worauf ich dich hingewiesen habe und vielleicht wird man deshalb nicht verstehen, das man sich den Link, der aus meiner Sicht an falscher Stelle von Pierre gesetzt ist, anschauen muss.
Vielleicht hat deswegen auch Jens1976 nachgefragt? 🤔
Freundliche Grüße
Hab es ja jetzt durch deine Frage auch erst realisiert, dass Pierre den Befehl im Beitrag vergessen hatte.
Ich hab den Link mal zusätzlich hinzugefügt.
Powershell 5 Umweg ?
Entsprechende Datei auf entsprechenden Rechner kopieren in den entsprechenden Pfad – fertig
♫ ♪ Dieser Weg … ♪ ♫
Als kleiner „Nachtrag“ zur Powershell Textdatei:
Will man verhindern dass jeder Befehl den man da „wiederholt“ abruft und ausführt, sollte man als letzten Eintrag in diese Textdatei setzen :
Set-PSReadlineOption -HistorySaveStyle SaveNothing
– diesn „Befehl / Eintrag“ dann immer als erstes aufrufen und mit ENTER bestätigen
– wird sonst zu unübersichtlich in dieser Datei, da man ja auch „nur“ mit den Cursortasten „blättern“ kann
…
Ich bin noch nicht ganz wach
„…Will man verhindern dass jeder Befehl den man da „wiederholt“ abruft und ausführt, erneut in diese Liste aufgenommen wird – da ja nicht geprüft wird ob dieser Eintrag schon existiert – sollte man als letzten Eintrag in diese Textdatei setzen :“
müsste es korrekter Weise lauten
Nutze in der Eingabeaufforderung (CMD) clink v0.4.9. Hab mir da eine unbeschränkte Historie der Befehle eingerichtet und zugleich noch die Farbe des Promts auf azurblau gestellt
Ob man die auch synchronisieren kann, weiß ich nicht, aber zur Not könnte man einfach die .history-Datei automatisiert in andere .clink-Profile verteilen. Da ich fast ausschließlich mit Batch-Dateien arbeite (selten PowerShell) ist das für mich eine sehr sehr komfortable Lösung und das hat mir schon oft den Kragen gerettet wenn ich Fehler bei Eingaben nachverfolgen wollte. clink kann auch PS aufzeichnen.
https://mridgers.github.io/clink/
gepostet mit der Deskmodder.de-App