it-swarm.com.de

Gibt es eine globale, beständige CMD-Historie?

Manchmal vergesse ich, wie die genaue Syntax eines CMD-Befehls aussieht, und möchte dann meinen eigenen CMD-Verlauf durchsuchen. Natürlich können Sie innerhalb derselben Sitzung mit den Pfeiltasten nach oben und unten navigieren. Wie steht es jedoch mit dem Verlauf früherer CMD-Sitzungen? Gibt es eine Datei, ein Protokoll, in das der Verlauf geschrieben wird, oder geht alles in das digitale Nirvana?

Vielen Dank!

105
raoulsson

Nein, der Windows-Eingabeaufforderungsverlauf kann nicht gespeichert werden, wenn eine Sitzung endet.

35
Massimo

Nicht nativ, aber check out: http://mridgers.github.io/clink/ , macht cmd.exe viel produktiver. Zitieren von Funktionen auf der Projektseite:

Powerful Bash-like line editing from GNU's Readline library.
Superior path completion (TAB).
Paste from clipboard (Ctrl-V).
Support for the completion of executables/commands, and environment variables.
Undo/Redo (Ctrl-_ or Ctrl-X, Ctrl-U)
Improved command line history.
Persists across sessions.
Searchable (Ctrl-R and Ctrl-S).
History expansion (e.g. !!, !<string>, and !$).
Scriptable completion using Lua.
68
Robert Bak

Massimo ist richtig, dass Ihr Eingabeaufforderungsverlauf nicht über Sitzungen hinweg bestehen bleibt. Sie können dies manuell abrufen, bevor Sie Ihre Eingabeaufforderung schließen, indem Sie doskey/history> history.txt eingeben.

Oder ... Sie können PowerShell als CMD-Eingabeaufforderung verwenden und diesem Beitrag folgen, um Ihren Verlauf über Sitzungen hinweg beizubehalten.

15
Sean Earp

Sie können Klirren verwenden.

Clink kombiniert die native Windows Shell cmd.exe mit den leistungsstarken Funktionen zur Befehlszeilenbearbeitung der Readline-Bibliothek GNU Readline), die umfassende Funktionen für Vervollständigung, Verlauf und Zeilenbearbeitung bietet.

Die einfachste Möglichkeit, Clink zu installieren, ist die Verwendung von schokoladig . Sobald Sie Chocolatey installiert haben, können Sie Clink durch Eingabe installieren

choco install clink

Ab dem nächsten Start von cmd.exe sollte der Verlauf sitzungsübergreifend gespeichert werden.

11
Joji Antony

Es ist möglich, den aktuellen Verlauf in einer Datei zu speichern.

`$ doskey /history > somefile.txt`

Aber es scheint keine Möglichkeit zu geben, es als Geschichte zurückzuladen. Es ist nur möglich, ein Befehlszeilenargument zu verwenden, um alle Zeilen zu laden und auszuführen.

cmd.exe /K somefile.txt

, was nützlich sein kann, um eine Liste von Doskey-Makros zu laden. Dieser Aufruf kann in eine Verknüpfung aufgenommen werden, sodass Sie ihn nicht jedes Mal eingeben müssen. diese Referenz enthält einige zusätzliche Informationen zu diesem Ansatz .

Es gibt eine ähnliche Frage auf Superuser , die einige Alternativen bringt, einschließlich Klirren , wie von @RobertBak vorgeschlagen.

7
mMontu

Befehlsverlauf: Um einen Befehlsverlauf zu aktivieren (auf den mit den Aufwärts- und Abwärtspfeiltasten zugegriffen werden kann), führen Sie einfach doskey an der Eingabeaufforderung aus. So erstellen Sie beispielsweise einen Befehlsverlauf mit 100 Elementen:

doskey /listsize=100

ref: https://users.cs.jmu.edu/bernstdh/web/common/help/ntshell.php

1

clink is Nice und der Autor veröffentlicht bei jeder Veröffentlichung ein schokoladiges Paket, ich würde jedoch DeepBlueCLI vorschlagen.

Mit https://github.com/sans-blue-team/DeepBlueCLI können Sie die Windows-Sicherheitsereignis-ID 4688 einrichten.

Für PowerShell verwendet DeepBlueCLI auch die Modulprotokollierung (PowerShell-Ereignis 4013) und die Skriptblockprotokollierung (4104). Es wird keine Transkription verwendet.

Der zusätzliche Vorteil besteht darin, dass der Hash der Befehlszeilenexe im AppLocker-Ereignisprotokoll protokolliert wird. Quelle: https://docs.Microsoft.com/en-us/windows-server/identity/ad-ds/manage/component-updates/command-line-process-auditing

Da diese Lösung die Windows-Ereignisprotokollinfrastruktur verwendet, können Sie sie auch über WMI oder PowerShell abfragen. Get-EventLog. Mit Clink müssen Sie ein anderes Tool erlernen, um system- oder netzwerkweite Verhaltensmuster zu erkennen.

1
John Zabroski