이벤트 로그 수집하는 Powershell 구문
[Explanation]
만능키로 이제 불리기 시작하는 파워쉘 관련하여 스크립팅 할 때마다 포스팅하려고 합니다. 오늘은 이벤트 로그를 보려고 할때 대부분 이벤트 뷰어 툴(eventvwr)을 통해서 보실 수 있지만 경우에 따라 event view가 WinRM을 많이 사용해서 로그 정보가 보이지 않을 때 하기 명령을 통해서 추출후 확인하시면 됩니다.
하기 명령어를 하나씩 설명 드리면 조회 기간에 대해 설정하였습니다. 언제부터( $after) 언제까지($before) 생성된 이벤트 로그 중에서 'Security' 관련 이벤트 내용 중에서 'Event ID'가 4624이고 'Message' 내용 중에 특정 계정(id)가 잇는 정보만 추출하여 별도 파일로 저장하는 명령어 입니다.
- $after = Get-Date 07/19/17
- $before =Get-Date 07/21/17
- Get-EventLog -LogName security -After $after -Before $before | Where-Object {$_.instanceID -eq 4624 -and $_.message -like '*id*'} |ft -Property * -AutoSize -Wrap | Out-File C:\Users\administrator\Desktop\result.txt
추가적으로 관련 명령어 정보를 얻고 싶으시면, 이곳으로!
하지만 하기 이벤트 로그에는 Windows 하위 프로그램에 대한 이벤트 로그는 수집할 수 없기 때문에 이럴 경우에는 "GET-WinEvent" 통해서만 가능합니다. 예를 들어 살펴보면 아래와 같습니다. (하기 구문에서는 Event ID가 106, taskscheduler 등록한 이벤트에 한해서만 조회한다.)
- $after = Get-Date 07/01/17
- Get-WinEvent -FilterHashTable @{ LogName = "Microsoft-Windows-TaskScheduler/Operational"; StartTime = $after; ID = 106 } | select * | Export-Csv D:\text1.csv -Encoding "UTF8" -NoTypeInformation
추가적으로 관련 명령어 정보를 얻고 싶으시면, 이곳으로!
♔♔♔♔♔♔♔♔♔♔
댓글이나 의견은 언제든지 환영합니다.
Your Comments are Always Welcome!
혹시 특정한 로그만 지울수 있을까요...
ReplyDelete예를 들어서 응용프로그램의 에러중 이벤트 ID만 선택해서 가능한지요.
[출처] 윈도우 이벤트 뷰어 로그 삭제 스크립트|작성자 깜장토끼