Sunday, August 27, 2017

 

[Windows] 이벤트 로그 수집하는 Powershell 구문 (event id, message 분류 가능)



이벤트 로그 수집하는 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!
Share:

1 comment:

  1. 혹시 특정한 로그만 지울수 있을까요...
    예를 들어서 응용프로그램의 에러중 이벤트 ID만 선택해서 가능한지요.
    [출처] 윈도우 이벤트 뷰어 로그 삭제 스크립트|작성자 깜장토끼

    ReplyDelete