Windows 시스템에서는 리눅스 시스템과 다르게 shell(cmd) 사용 시 로그가 기록되지 않는다.
그래서 윈도우 내에서 CMD 로그를 기록할만한 방법을 찾아봤었는데,
명령 프롬포트 수동 저장
doskey 를 이용하는 방법이다.
doskey /history > 경로\log.txt 명령어를 통해 지금까지 사용한 명령어를 경로\log.txt에 저장하는 방법이다.
사실 이 방법은 현재 프롬포트에서 사용한 로그를 프롬포트를 종료하기 전에 써야하는 번거로움이 있어 불편하다.
PowerShell 수동 저장
이 또한 위와 비슷하다. Get-History 는 해당 PowerShell에서 사용한 명령어들을 출력하는 명령어로, 이를 이용하여 파일 저장 위치를 지정하여 파일을 저장하는 방법이다.
즉 해당 명령어를 통해 배치 파일(스크립트)를 작성하여 로그를 기록하도록 한다.
자동화 배치파일 CMD
@echo off
if "%AUTOEXEC%" EQU "1" goto :eof
SET AUTOEXEC=1
echo Loading macros.
rem remap exit command to save a copy of the command line history to a log before exiting.
DOSKEY exit=(echo/ ^& echo **** %date% %time% ****) $g$g %USERPROFILE%\commands.log ^& doskey /history $g$g %USERPROFILE%\commands.log ^& ECHO Command history saved, exiting ^& exit $*
해당 스크립트를 작성하여 %USERPROFILE%\autoexec.bat 에 저장 후 자동으로 실행시키기 위해
regedit 을 이용하여 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Command Processor\AutoRun 에서 데이터를 삽입한다.
IF EXIST "%USERPROFILE%\autoexec.bat" (CALL "%USERPROFILE%\autoexec.bat")
이렇게 하면 %USERPROFILE% 에 로그가 기록됨을 확인 할 수 있다.
컴퓨터를 재부팅 해도 자동으로 실행되면서 기록이 가능하니 때문에 자동으로 CMD 로그에 대해서는 저장 할 수 있다.