파워쉘 스크립트로 dns 요청 로그를 기록하려는데 잘 안 되네요.

조회수 1306회

윈도우 이벤트 로그에서 dns 요청만 따로 추출할려고 아래 스크립트를 만들었습니다.

#최신 DNS 조회 결과
$DNS_CMDLET= Get-WinEvent microsoft-windows-dns-client/operational -MaxEvents 1 -FilterXPath "*[System/EventID=3006]"
#프로세스 ID
$PROC_ID = $DNS_CMDLET | Select-Object -ExpandProperty processid
#로그 발생 일시
$TIMESTAMP = $DNS_CMDLET | Select-Object -ExpandProperty timecreated
#로그 발생 내역
$LOG_MSG = $DNS_CMDLET | Select-Object -ExpandProperty message

#프로세스 ID를 이용한 프로세스명 조회
$PROC_NAME = Get-Process -id $PROC_ID | Select-Object -ExpandProperty processname
#로그 발생 일시를 날짜와 시간으로 분리
$TIMESTAMP_SPLIT = $TIMESTAMP -split " "
#날짜
$LOG_DATE = $TIMESTAMP_SPLIT[0]
#시간
$LOG_TIME = $TIMESTAMP_SPLIT[1]
#로그 발생 내역에서 URL만 추출
$LOG_URL = $LOG_MSG -replace '^\S{2}\s([^,]+).+','$1'

#날짜, 시간, 프로세스 ID, 프로세스명, URL(탭으로 구분)
$LOG = "$LOG_DATE`t$LOG_TIME`t$PROC_ID`t$PROC_NAME`t$LOG_URL"
#추출 정보 기록
$LOG >> C:\dns.csv

3006 이벤트가 발생할 때마다 스크립트가 실행되도록 작업 스케줄러에 등록했구요.

이미지

결과물은 이런데요.

이미지

잘 되는 줄 알았는데 자세히 보니 같은 시간대에 여러 개의 이벤트가 발생하면 마지막 이벤트만 기록이 되네요.

이미지

이미지

뭐가 문제일까요? 작업 스케줄러의 한계인가?ㅡㅡ 의견 좀 부탁드립니다.

  • (•́ ✖ •̀)
    알 수 없는 사용자

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)