본문 바로가기
운영체제 (LNX,WIN)

Eventtriggers.exe 를 이용한 실시간 이벤트 모니터링

by 날으는물고기 2008. 12. 22.

Eventtriggers.exe 를 이용한 실시간 이벤트 모니터링

Eventtriggers 명령줄 도구를 사용하여 이벤트 로그를 생성하고 쿼리하거나 프로그램을 특정 기록된 이벤트와 연결할 수도 있습니다. Eventtriggers.exe 를 사용하면 특정 이벤트 발생 시 프로그램이 실행되는 이벤트 트리거를 만들 수 있습니다.

- Windows XP Professional 및 Windows Server 2003 에서만 지원 -

C:\>eventtriggers.exe /?

EVENTTRIGGERS /parameter [인수]

설명:
    이 도구는 관리자가 로컬 또는 원격 컴퓨터에서
    "이벤트 트리거"를 구성할 수 있도록 합니다.

매개 변수 목록:
    /Create     새 이벤트 트리거를 만듭니다.
    /Delete     트리거 ID로 이벤트 트리거를 삭제합니다.
    /Query      이벤트 트리거의 속성 및 설정을 표시합니다.
    /?          이 도움말/사용법을 표시합니다.

예:
    EVENTTRIGGERS /Create /?
    EVENTTRIGGERS /Delete /?
    EVENTTRIGGERS /Query /?


    EVENTTRIGGERS /Create [/S system [/U username [/P [password]]]]
                      /TR triggername /TK taskname [/D description]
                      [/L log] { [/EID id] [/T type] [/SO source] }
                      [/RU username [/RP [password]]]

이를테면,. 디스크 공간 부족 이벤트 로그가 발생할 경우 해당 이벤트 ID 에 대해서 트리거를 걸어 놓고, 특정 작업을 실행할수 있습니다... 메일을 보낸다건가,. SMS 를 전송한더건가...

EVENTTRIGGERS /Create /S system /U Administrator /TR "Low Disk Space" /EID 99 /SO "WinWord" /T ERROR /TK dsk.cmd

Administrator에 대한 실행할 계정 암호를 입력하십시오:********
성공: 이벤트 트리거 "Disk Cleanup"을(를) 만들었습니다.

등록된 트리거 목록은,.

C:\>eventtriggers.exe /query

트리거 ID 이벤트 트리거 이름        작업
========== ========================= ===================================
         1 Disk Cleanup              c:\windows\system32\cleanmgr.exe


이러한 트리거는, 실행할 작업에 대해서 예약 작업에 등록이 되어 있습니다. 이러한 작업이 가능한 이유는 WMI 의 이벤트 클래스는 이용하기 때문입니다. 물론 예약 작업의 Job 목록도 WMI 를 통해서 등록이 됩니다.

다음 코드는 닷넷 에서의 WMI 를 이용한 EventWatcher 코드 입니다.

ManagementEventWatcher watcher = new ManagementEventWatcher(
                     new EventQuery("SELECT * FROM __InstanceCreationEvent 
                                                           WHERE TargetInstance ISA 'Win32_NTLogEvent'"));
watcher.EventArrived += new EventArrivedEventHandler(Arrived);

Vbscript 에서는,

strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" _
    & strComputer & "\root\CIMV2")
Set objEvents = objWMIService.ExecNotificationQuery _
    ("SELECT * FROM Win32_NTLogEvent")


물론, Vista 이상으로 오면서 부터는 예약 작업에 트리거 기능이 추가되어 있는데, 이 트리거 기능은 이벤트 로그 도구와 연동 되어 있어서 쉽게 트리거 설정이 가능합니다.
728x90

댓글