Windows Server 2003 에서 터미널 서비스에 로그인 한 사용자의 IP Address 를 가져올 수 있는 방법이 없을까요? 보안 이벤트 로그에 기록된 성공 감사 기록을 바탕으로 Log Parser 를 통해 IP Address 를 가져올 수 있습니다.
[요구사항 및 조건]
Log Parser 로 파싱한 조건은 Windows Server 보안 이벤트 로그의 성공 감사, 이벤트 ID 528 에 대해서 원본 네트워크 주소를 가져오는 쿼리입니다.
[원본 이벤트 로그]
이벤트 형식: 성공 감사
이벤트 원본: Security
이벤트 범주: 로그온/로그오프
이벤트 ID: 528
날짜: 5/24/2011
시간: 9:25:24 AM
사용자: W2K3EEKOR\Administrator
컴퓨터: W2K3EEKOR
설명:
로그온 성공:
사용자 이름: Administrator
도메인: W2K3EEKOR
로그온 ID: (0x0,0x79BECE)
로그온 유형: 10
로그온 프로세스: User32
인증 패키지: Negotiate
워크스테이션 이름: W2K3EEKOR
로그온 GUID: -
호출자 사용자 이름: W2K3EEKOR$
호출자 도메인: WORKGROUP
호출자 로그온 ID: (0x0,0x3E7)
호출자 프로세스 ID: 3272
전송된 서비스: -
원본 네트워크 주소: 192.168.1.1
원본 포트: 49634
이벤트 원본: Security
이벤트 범주: 로그온/로그오프
이벤트 ID: 528
날짜: 5/24/2011
시간: 9:25:24 AM
사용자: W2K3EEKOR\Administrator
컴퓨터: W2K3EEKOR
설명:
로그온 성공:
사용자 이름: Administrator
도메인: W2K3EEKOR
로그온 ID: (0x0,0x79BECE)
로그온 유형: 10
로그온 프로세스: User32
인증 패키지: Negotiate
워크스테이션 이름: W2K3EEKOR
로그온 GUID: -
호출자 사용자 이름: W2K3EEKOR$
호출자 도메인: WORKGROUP
호출자 로그온 ID: (0x0,0x3E7)
호출자 프로세스 ID: 3272
전송된 서비스: -
원본 네트워크 주소: 192.168.1.1
원본 포트: 49634
[LOG PARSER 쿼리]
Strings 필드에 '|' 으로 구분된 13번째 IP Address, 3번째 로그온 유형(10) 을 조건으로 결과 가져오기
C:\Program Files\Log Parser 2.2>logparser.exe -o:CSV "SELECT TimeGenerated, EXTR
ACT_TOKEN(Strings,13,'|') AS IP_ADDRESS FROM Security WHERE EventID=528 AND EXTR
ACT_TOKEN(Strings,3,'|') LIKE '10'" -i:EVT
ACT_TOKEN(Strings,13,'|') AS IP_ADDRESS FROM Security WHERE EventID=528 AND EXTR
ACT_TOKEN(Strings,3,'|') LIKE '10'" -i:EVT
[출력결과]
TimeGenerated,IP_ADDRESS
2011-05-24 08:52:04,192.168.1.1
2011-05-24 09:24:59,192.168.1.1
2011-05-24 09:25:24,192.168.1.1
Statistics:
-----------
Elements processed: 193
Elements output: 3
Execution time: 0.02 seconds
2011-05-24 08:52:04,192.168.1.1
2011-05-24 09:24:59,192.168.1.1
2011-05-24 09:25:24,192.168.1.1
Statistics:
-----------
Elements processed: 193
Elements output: 3
Execution time: 0.02 seconds
작성자 : Lai Go / 작성일자 : 2011.05.24