$DNS_CMDLET = Get-WinEvent microsoft-windows-dns-client/operational -MaxEvents 1 -FilterXPath "*[System/EventID=3006]"$PROC_ID = $DNS_CMDLET | Select-Object -ExpandProperty processid$TIMESTAMP = $DNS_CMDLET | Select-Object -ExpandProperty timecreated$LOG_MSG = $DNS_CMDLET | Select-Object -ExpandProperty message$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]$LOG_URL = $LOG_MSG -replace '^\S{2}\s([^,]+).+','$1'$LOG = "$LOG_DATE`t$LOG_TIME`t$PROC_ID`t$PROC_NAME`t$LOG_URL"$LOG >> C:\dns.csv
URL 추출은 정규표현식 ^\S{2}\s([^,]+).+에 의해 검사된 전체 메시지 내용 중, URL 영역만을 캡쳐 그룹으로 저장한 후, 역참조($1)를 이용해서 전체 메시지를 다시 덮어 씌우는 방식(replace).
댓글 없음:
댓글 쓰기