Cum monitorizez aparitia unui anumit Event ID in loguri? (VBS/WMI version)

By Andrei Ungureanu - Last updated: Tuesday, February 16, 2010 - Save & Share - One Comment

 

Exista destul de multe metode pentru a monitoriza aparitia unui anumit eveniment in event viewer. Avem tool-uri, scripturi, agenti de monitorizare, iar de la Windows Vista in sus putem sa declansam anumite activitati la aparitia unui eveniment folosind Task Scheduler.

Astazi o sa prezint un mod de a face acest lucru folosind un script VBS (asta si pentru ca poate fi folosit cam pe orice versiune de Windows):

strComputer = “.”

Set objWMIService = GetObject(“winmgmts:{(Security)}\\” & _
        strComputer & “\root\cimv2”)

Set colMonitoredEvents = objWMIService.ExecNotificationQuery _   
    (“Select * from __InstanceCreationEvent Where ” _
        & “TargetInstance ISA ‘Win32_NTLogEvent’ ” _
            & “and TargetInstance.EventCode = ‘7035’ “)

Do
    Set objLatestEvent = colMonitoredEvents.NextEvent
        Wscript.Echo “Un serviciu a fost oprit”
        Wscript.Echo “————————”
        Wscript.Echo “User: ” & objLatestEvent.TargetInstance.User
        Wscript.Echo “Time: ” & objLatestEvent.TargetInstance.TimeWritten
        Wscript.Echo “Category: ” & objLatestEvent.TargetInstance.Category
        Wscript.Echo “Event Code: ” & objLatestEvent.TargetInstance.EventCode
        Wscript.Echo “Message: ” & objLatestEvent.TargetInstance.Message
        Wscript.Echo “Record Number: ” & objLatestEvent.TargetInstance.RecordNumber
        Wscript.Echo “Source Name: ” & objLatestEvent.TargetInstance.SourceName
        Wscript.Echo “Event Type: ” & objLatestEvent.TargetInstance.Type
        Wscript.Echo

        Wscript.Echo objLatestEvent.TargetInstance.Message
        Wscript.Echo
Loop

Scriptul monitorizeaza aparitia evenimentului cu ID-ul 7035 (vedeti linia cu TargetInstance.EventCode = ‘7035’; pentru a monitoriza alt event modificati aceasta linie) in oricare din logurile sistemului. In momentul in care apare va afisa detalii despre eveniment. ID-ul 7035 apare la oprirea sau pornirea unui serviciu in Windows. Evenimentele de start si stop au acelasi cod (7035 si 7036) asa ca e putin mai greu sa deosebesti intre oprirea si pornirea unui serviciu doar din ID-ul eventului. Ca exemplu l-am pornit pe un server din command prompt:

image

Si am restartat serviciul DNS Client:

image

La cateva secunde iata ce se intampla in command prompt:

image

Exemplul cu restartul de serviciu nu este cel mai bun exemplu tocmai pentru ca nu exista event-uri separate pentru start si stop, insa e suficient ca sa intelegeti ca functioneaza. Scriptul poate fi modificat foarte usor pentru a face altceva, nu numai a afisa informatii pe ecran. Trebuie doar sa introduceti codul in bucla Do … Loop din script.

Sursa: Hey, Scripting Guy!

Posted in Management and monitoring, Scripting • Tags: , Top Of Page

One Response to “Cum monitorizez aparitia unui anumit Event ID in loguri? (VBS/WMI version)”

Pingback from Cum pot detecta cand cineva imi modifica grupul Domain Admins? » RO Windows Administrators Weblog
Time February 17, 2010 at 8:10 am

[…] Cum monitorizez aparitia unui anumit Event ID in loguri? (VBS/WMI version) […]

Write a comment