====== Event Viewer Catch ====== La funzione esegue una ricerca nell'Event Viewer di sistema e restituisce l'ultimo evento con un ID dichiarato inizialmente (vedi ShowServicesEvent(6005)). 6005 è l'ID corrispondente all'ultimo avvio del registro di sistema (tipicamente eseguito in post-riavvio della macchina). ' FILTRO SU ID SISTEMA e RICERCA ULTIMO EVENTO REGISTRATO ShowServicesEvent(6005) Public Function ShowServicesEvent(evcode) strComputer = "." evecode = evcode count = 0 Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2") Set colServiceEvents = objWMIService.ExecQuery("Select * from Win32_NTLogEvent Where Logfile = 'System' and EventCode = '" & evecode & "'") For Each strEvent in colServiceEvents dtmConvertedDate.Value = strEvent.TimeWritten 'Debug: informazioni mostrate in msgbox (togliere i commenti per la verifica) 'Wscript.Echo dtmConvertedDate.GetVarDate 'Wscript.Echo strEvent.Message count = count + 1 if count <> 0 Then Exit Function End If Next End Function ===== Recupero di tutti gli oggetti con lo stesso ID ===== E' una modifica alla funzione, permette di raccogliere tutti gli eventi con lo stesso ID (stavolta passato direttamente dentro "colServiceEvents" e non via variabile. Occhio agli "echo" che mostrano a video tramite msgbox tutte le informazioni: più eventi ci sono con quell'ID, più box verranno mostrati a video. Come già detto nei commenti in caso di lancio per errore è possibile terminare l'esecuzione dello script tramite prompt dei comandi: **taskkill /IM wscript.exe /F** ' Questa funzione mostra tutti gli eventi con lo stesso ID, occhio a sbloccarla perché i messaggi vengono mostrati tramite MSGBOX e potrebbero essere moltissimi. Sostituire l'ID 6005 contenuto in riga 29 con quello desiderato. ' In caso di errore da prompt dei comandi lanciare un "taskkill /IM wscript.exe /F" (senza virgolette) per bloccare l'esecuzione dello script Public Function ShowServicesEvent() Set dtmConvertedDate = CreateObject("WbemScripting.SWbemDateTime") strComputer = "." count = 0 Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2") Set colServiceEvents = objWMIService.ExecQuery("Select * from Win32_NTLogEvent Where Logfile = 'System' and EventCode = '6005'") For Each strEvent in colServiceEvents dtmConvertedDate.Value = strEvent.TimeWritten Wscript.Echo dtmConvertedDate.GetVarDate Wscript.Echo strEvent.Message Next End Function