Cum monitorizez aparitia unui anumit Event ID in loguri? (VBS/WMI version)
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.EchoWscript.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:
Si am restartat serviciul DNS Client:
La cateva secunde iata ce se intampla in command prompt:
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!
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) […]