어떤 경우에는 컴퓨터나 서버의 Windows 이벤트 로그에서 모든 항목을 삭제해야 합니다. 물론 이벤트 뷰어 콘솔 GUI(Eventvwr.msc)에서 시스템 로그를 지울 수 있습니다. (지우려는 로그를 마우스 오른쪽 버튼으로 클릭하고 로그 지우기를 선택하십시오. ). 그러나 Vista부터 Windows는 서로 다른 시스템 구성 요소에 대해 수십 개의 로그를 사용하고 있으며 이벤트 뷰어에서 모든 로그를 수동으로 지우는 데 시간이 많이 걸립니다. PowerShell을 사용하여 명령 프롬프트에서 로그를 지우는 것이 훨씬 쉽습니다. 또는 내장 콘솔 도구 wevtutil .
PowerShell로 이벤트 로그 지우기
PowerShell 3이 설치되어 있는 경우(기본적으로 Windows 8/Windows Server 이상에 설치됨) Get-EventLog를 사용할 수 있습니다. 및 Clear-EventLog cmdlet을 사용하여 이벤트 로그 목록을 가져오고 지울 수 있습니다.
관리자 권한으로 PowerShell 콘솔을 시작하고 다음 명령을 사용하여 시스템의 모든 표준 이벤트 로그 목록을 최대 크기 및 이벤트 수로 표시합니다.
Get-EventLog –LogName *
특정 이벤트 로그(예:시스템 로그)에서 모든 항목을 지우려면 다음 명령을 사용하십시오.
Clear-EventLog –LogName System
결과적으로 이 로그의 모든 이벤트가 삭제되고 EventId가 104인 이벤트는 하나만 있게 됩니다. "시스템 로그 파일이 지워졌습니다. “ .
모든 이벤트 로그를 지우려면 로그 이름을 파이프라인으로 리디렉션해야 하지만 안타깝게도 금지되어 있습니다. 따라서 ForEach 주기를 사용해야 합니다.
Get-EventLog -LogName * | ForEach { Clear-EventLog $_.Log }
따라서 모든 표준 이벤트 로그가 지워집니다.
콘솔 도구 WevtUtil.exe를 사용하여 로그 지우기
이벤트 작업을 위해 Windows에는 오랫동안 강력한 명령 프롬프트 유틸리티 WevtUtil.exe가 있었습니다. . 그 구문은 첫눈에 약간 복잡합니다. 예를 들어 다음은 유틸리티의 도움말을 반환합니다.
시스템에 등록된 로그 목록을 표시하려면 다음 명령을 실행하십시오.
WevtUtil enum-logs
또는 더 짧은 버전:
WevtUtil el
상당히 인상적인 로그 목록이 화면에 표시됩니다.
참고 . 다음 명령을 사용하여 로그 수를 계산할 수 있습니다. WevtUtil el |Measure-Object. 제 경우에는 Windows 10에 1,053개의 다른 로그가 있었습니다.
특정 로그에 대한 자세한 정보를 얻을 수 있습니다.
WevtUtil gl Setup
특정 로그에서 이벤트를 지우는 방법은 다음과 같습니다.
WevtUtil cl Setup
이벤트를 지우기 전에 다음 파일에 저장하여 백업할 수 있습니다.
WevtUtil cl Setup /bu:SetupLog_Bak.evtx
모든 로그를 한 번에 지우려면 Get-WinEvent를 사용할 수 있습니다. 모든 로그 개체를 가져오는 PowerShell cmdlet 및 지우기 위한 Wevtutil.exe:
Get-WinEvent -ListLog * -Force | % { Wevtutil.exe cl $_.LogName }
또는
Wevtutil el | ForEach { wevtutil cl “$_”}
표준 명령 프롬프트를 사용하여 로그를 지울 수도 있습니다.
for /F "tokens=*" %1 in ('wevtutil.exe el') DO wevtutil.exe cl "%1"