때로는 CMD 명령의 정확한 구문이 어떻게 보이는지 잊어 버린 후 내 CMD 기록을 검색하고 싶습니다. 분명히 동일한 세션 내에서 위쪽 및 아래쪽 화살표 키를 사용하여 탐색 할 수 있지만 이전 CMD 세션의 기록은 어떻습니까? 파일, 기록이 기록되거나 디지털 너바나로 이동하는 로그가 있습니까?
감사!
때로는 CMD 명령의 정확한 구문이 어떻게 보이는지 잊어 버린 후 내 CMD 기록을 검색하고 싶습니다. 분명히 동일한 세션 내에서 위쪽 및 아래쪽 화살표 키를 사용하여 탐색 할 수 있지만 이전 CMD 세션의 기록은 어떻습니까? 파일, 기록이 기록되거나 디지털 너바나로 이동하는 로그가 있습니까?
감사!
답변:
아니요, 세션이 종료되면 Windows 명령 프롬프트 기록을 저장할 수 없습니다.
doskey.exe /history
(F7 바로 가기의 출처 인 BTW).하지만 다음 세션에서 백업을 다시로드 할 방법이 없습니다.
기본적으로는 아니지만 http://mridgers.github.io/clink/를 확인 하면 cmd.exe의 생산성이 훨씬 높아집니다. 프로젝트 페이지에서 인용 기능 :
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.
~/.inputrc
클 링크를 사용할 때를 설정할 수 있습니까 ? (그리고 콘솔을 사용할 수 있는지 여부를 알고 있습니까?)
Massimo는 명령 프롬프트 기록이 여러 세션에 걸쳐 지속되지 않는 것이 맞습니다. doskey / history> history.txt를 입력하여 프롬프트를 닫기 전에이를 수동으로 잡을 수 있습니다 .
또는 ... PowerShell 을 CMD 프롬프트로 사용 하고이 게시물 을 따라 여러 세션에서 기록을 유지할 수 있습니다.
clink 를 사용할 수 있습니다 .
Clink는 기본 Windows 셸 cmd.exe와 GNU Readline 라이브러리의 강력한 명령 줄 편집 기능을 결합하여 풍부한 완성, 기록 및 줄 편집 기능을 제공합니다.
clink를 설치하는 가장 쉬운 방법은 chocolatey를 사용하는 것 입니다. chocolatey를 설치하면 다음을 입력하여 clink를 설치할 수 있습니다
choco install clink
다음에 cmd.exe를 시작하면 세션 전체에 기록이 저장됩니다.
Chocolatey
포스트 때문에 샷을하기 로 결정했습니다 . brew
macOS 에서처럼 설치가 쉬웠습니다 . 그리고 이제 Windows에 Bash와 같은 명령 프롬프트가 있습니다!
현재 이력을 파일로 저장할 수 있습니다.
`$ doskey /history > somefile.txt`
그러나 기록으로 다시로드 할 수있는 방법이없는 것 같습니다. 명령 행 인수 만 사용하여 모든 행을로드하고 실행할 수 있습니다.
cmd.exe /K somefile.txt
, doskey 매크로 목록을로드하는 데 유용한 기능 이 호출은 바로 가기에 포함될 수 있으므로 매번 입력 할 필요는 없습니다. 이 참조에는이 접근 방식에 대한 추가 정보가 있습니다.
@RobertBak이 제안한 것처럼 clink를 포함한 몇 가지 대안을 가져 오는 수퍼 유저에 대한 비슷한 질문이 있습니다 .
명령 기록 : 위쪽 / 아래쪽 화살표 키를 사용하여 액세스 할 수있는 명령 기록을 활성화하려면 명령 프롬프트에서 doskey를 실행하십시오. 예를 들어, 100 개 요소의 명령 히스토리를 작성하려면 다음을 수행하십시오.
doskey /listsize=100
심판 : https://users.cs.jmu.edu/bernstdh/web/common/help/ntshell.php
clink 는 훌륭하고 저자는 모든 릴리스에 초콜릿 패키지를 게시하지만 DeepBlueCLI를 제안합니다.
https://github.com/sans-blue-team/DeepBlueCLI 를 사용 하여 Windows 보안 이벤트 ID 4688을 설정할 수 있습니다 .
PowerShell의 경우 DeepBlueCLI는 모듈 로깅 (PowerShell 이벤트 4013) 및 스크립트 블록 로깅 (4104)도 사용합니다. 전사를 사용하지 않습니다.
추가 이점은 AppLocker 이벤트 로그에 명령 줄 exe의 해시를 기록한다는 것입니다. 출처 : https://docs.microsoft.com/en-us/windows-server/identity/ad-ds/manage/component-updates/command-line-process-auditing
또한이 솔루션은 Windows 이벤트 로그 인프라를 사용하므로 WMI 또는 PowerShell을 통해 쿼리 할 수 있습니다 Get-EventLog
. clink를 사용하면 시스템 또는 네트워크 전체의 동작 패턴을 감지하기 위해 다른 도구를 배워야합니다.
doskey exit=doskey /history ^>^> C:\path\to\cmdhistory.log $T exit $*
그러나 각 명령 프롬프트 세션 시작시이를 자동으로 실행하는 방법을 알아 내야합니다. PS : 로그 파일의 경로가 쓰기 가능한지 확인하십시오.C:\
비 관리자 명령 프롬프트에는 쓸 수 없습니다.