상세 컨텐츠

본문 제목

[windows 2008 r2] powershell 이용한 이벤트 로그 지우기

서버설정

by fsteam 2014. 7. 1. 12:11

본문

윈도우 2008 서버를 사용하다 보면.. 로그가 마구마구 쌓이는걸 볼수 있다.

이벤트 뷰어로 봤을때 로그가 몇만개~ 몇십만개가 되면 이벤트로 로그 한번 보기도 어려워진다.


서버에 문제가 발생했을때 잘 남겨진 이벤트 로그는 문제해결에 큰 도움이 된다.

하지만 나처럼 테스트 서버를 셋팅해 놓고 내부 네트워크에서만 사용하는 경우는.. 해킹의 염려가 없고 문제가 발생하면 확~ 밀어버리고 새로 셋팅하면 그만이기 때문에 마구마구 쌓이는 이벤트 로그는 불필요한 존재이다.


이벤트 뷰어에서 로그를 지우는 것이 가능하지만.. 이 작업을 매번 해주는 것도 짜증나는 일이고.. 

로그를 한꺼번에 지울수 없을까 고민하던 중 powershell 을 알게 되었다.


powershell 은 일반 cmd 와는 다른 shell이며 보다 막강한 기능을 제공한다. 그렇기 때문에 더욱 사용상의 주의를 요한다.

꼭 필요한 작업이거나 나처럼 막 굴리는 테스트 서버가 아니라면 사용을 자제하기를 권한다.

powershell 은 cmd shell 과는 다르게 앞에 PS 가 붙는다.


cmd

C:\Users\Administrator>


powershell

PS C:\Users\Administrator>


전체 이벤트로그를 삭제하는 명령은 다음과 같다.

PS C:\Users\Administrator>wevtutil el | foreach { wevtutil cl $_ }



먼저 로그를 지우기 전의 이벤트 뷰어 상태


powershell에서 약 10초 정도 걸려서 로그가 삭제되었으며.. 아래와 같이 정리되었다!


요것도 배치파일로 만들어 놓고.. 스케줄러로 돌리면 되겠구나~ 했는데.. 막상 해보니 안된다.

기본적으로 powershell 은 스크립트 실행을 막아 놓았다고 한다.

자세한 스크립트 실행정책을 보고 싶으면 powershell 에서 아래의 명령어로 확인할수 있다.


PS C:\Users\Administrator> Get-Help about_execution_policies



기본정책은 Restricted 이며.. 이를 사용자 환경에 맞게 변경하여 쓸수 있다.

Set-ExecutionPolicy [변경할정책]

아예 제한을 완전 풀어버리려면 다음과 같이 정책을 변경할 수 있다.

PS C:\Users\Administrator> Set-ExecutionPolicy Unrestricted


이제는 powershell 스크립트를 만들수 있게 되었다.

스크립트 파일 작성후 확장자를 ps1 으로 만들자.. powershell 에서 실행해 보면 잘 동작 한다.


작성된 첨부파일은 전체로그를 지우는 스크립트이다.. 이를 스케줄러에 등록 후 사용하면 된다.

(로그 전체가 삭제되므로.. 주의해서 사용해야 한다.)


LogCleaner.zip



관련글 더보기