Computer >> 컴퓨터 >  >> 체계 >> Windows Server

PowerShell 또는 Wevtutil을 사용하여 Windows 이벤트 로그를 지우는 방법

어떤 경우에는 컴퓨터나 서버의 Windows 이벤트 로그에서 모든 항목을 삭제해야 합니다. 물론 이벤트 뷰어 콘솔 GUI(Eventvwr.msc)에서 시스템 로그를 지울 수 있습니다. (지우려는 로그를 마우스 오른쪽 버튼으로 클릭하고 로그 지우기를 선택하십시오. ). 그러나 Vista부터 Windows는 서로 다른 시스템 구성 요소에 대해 수십 개의 로그를 사용하고 있으며 이벤트 뷰어에서 모든 로그를 수동으로 지우는 데 시간이 많이 걸립니다. PowerShell을 사용하여 명령 프롬프트에서 로그를 지우는 것이 훨씬 쉽습니다. 또는 내장 콘솔 도구 wevtutil .

PowerShell 또는 Wevtutil을 사용하여 Windows 이벤트 로그를 지우는 방법

PowerShell로 이벤트 로그 지우기

PowerShell 3이 설치되어 있는 경우(기본적으로 Windows 8/Windows Server 이상에 설치됨) Get-EventLog를 사용할 수 있습니다. 및 Clear-EventLog cmdlet을 사용하여 이벤트 로그 목록을 가져오고 지울 수 있습니다.

관리자 권한으로 PowerShell 콘솔을 시작하고 다음 명령을 사용하여 시스템의 모든 표준 이벤트 로그 목록을 최대 크기 및 이벤트 수로 표시합니다.

Get-EventLog –LogName *

PowerShell 또는 Wevtutil을 사용하여 Windows 이벤트 로그를 지우는 방법

특정 이벤트 로그(예:시스템 로그)에서 모든 항목을 지우려면 다음 명령을 사용하십시오.

Clear-EventLog –LogName System

결과적으로 이 로그의 모든 이벤트가 삭제되고 EventId가 104인 이벤트는 하나만 있게 됩니다. "시스템 로그 파일이 지워졌습니다. .

PowerShell 또는 Wevtutil을 사용하여 Windows 이벤트 로그를 지우는 방법

모든 이벤트 로그를 지우려면 로그 이름을 파이프라인으로 리디렉션해야 하지만 안타깝게도 금지되어 있습니다. 따라서 ForEach 주기를 사용해야 합니다.

Get-EventLog -LogName * | ForEach { Clear-EventLog $_.Log }

따라서 모든 표준 이벤트 로그가 지워집니다.

콘솔 도구 WevtUtil.exe를 사용하여 로그 지우기

이벤트 작업을 위해 Windows에는 오랫동안 강력한 명령 프롬프트 유틸리티 WevtUtil.exe가 있었습니다. . 그 구문은 첫눈에 약간 복잡합니다. 예를 들어 다음은 유틸리티의 도움말을 반환합니다.

PowerShell 또는 Wevtutil을 사용하여 Windows 이벤트 로그를 지우는 방법

시스템에 등록된 로그 목록을 표시하려면 다음 명령을 실행하십시오.

WevtUtil enum-logs
또는 더 짧은 버전:

WevtUtil el

상당히 인상적인 로그 목록이 화면에 표시됩니다.

참고 . 다음 명령을 사용하여 로그 수를 계산할 수 있습니다. WevtUtil el |Measure-Object. 제 경우에는 Windows 10에 1,053개의 다른 로그가 있었습니다.

PowerShell 또는 Wevtutil을 사용하여 Windows 이벤트 로그를 지우는 방법

특정 로그에 대한 자세한 정보를 얻을 수 있습니다.

WevtUtil gl Setup

PowerShell 또는 Wevtutil을 사용하여 Windows 이벤트 로그를 지우는 방법

특정 로그에서 이벤트를 지우는 방법은 다음과 같습니다.

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 “$_”}

참고 . 이 예에서는 액세스 오류로 인해 3개의 로그를 지울 수 없었습니다. 이벤트 뷰어를 사용하여 시도해 볼 가치가 있습니다.

PowerShell 또는 Wevtutil을 사용하여 Windows 이벤트 로그를 지우는 방법

표준 명령 프롬프트를 사용하여 로그를 지울 수도 있습니다.

for /F "tokens=*" %1 in ('wevtutil.exe el') DO wevtutil.exe cl "%1"