[R] Synthèse d'erreur dans l'observateur d'évènement
Posté : sam. 10 nov. 2007 20:37
bonjour à tous
Je désire créer un détecteur d’erreur dans observateur d’événement.
Pour envoyer un email par jour en cas d’erreur.
Sur l’ancien forum et sur le forum anglais j’avais trouvé ceci
J’ai compris le fonctionnement
Dans l’exemple je sélectionne les erreurs de la source system et le 05 11 2007
Et je compte le nombre d’erreur
Mais je voudrais en faire une synthèse (j’avais trouver sur le net un programme qui fonctionnais comme ça, mais un jour, un poste a eu une erreur de disque cdrom et le programme à envoyé au moins 2000 emails dans l’heure !! c'a fait désordre)
Alors voila
J’ai par exemple un faux fichier observateur d’événement comme ci-dessous
05 11 2007 system erreur disque
O5 11 2007 system erreur virus
05 11 2007 system erreur disque
05 11 2007 system erreur dcom
05 11 2007 system erreur disque
05 11 2007 system erreur virus
Et je voudrais un état par jour du genre
Il y a le 05 11 2007 sur le poste machin
3 erreurs disque
2 erreurs virus
1 erreur dcom
Le nom des erreurs étant inconnu avant la synthèse
Ainsi que l’ordre d’apparition
Je sais comme dans l’exemple sélectionner par date
Je sais également éliminer des erreurs connus et pas intéressantes ex. print
Mais je ne vois comment trier et synthétiser les erreurs
Je ne vous demande pas une solution toute faite
Mais les outils ou fonction qui pourrai m’aider
Ou éventuellement un exemple de gestion de base de donnée ou tableau multi, enfin justement je ne sais pas quoi
Merci à tous
A+ jl56
ps genial le forumcolor par contre des retour chariot ne sont pas pris en compte
Je désire créer un détecteur d’erreur dans observateur d’événement.
Pour envoyer un email par jour en cas d’erreur.
Sur l’ancien forum et sur le forum anglais j’avais trouvé ceci
Code : Tout sélectionner
;~ $Query_Clause = "Select * FROM Win32_NTLogEvent WHERE Logfile = 'System' AND SourceName = 'Print' AND EventCode = 6161"
;~ test erreur system
$Query_Clause = "Select * FROM Win32_NTLogEvent WHERE Logfile = 'System' AND Type = 'Erreur'"
;~ $Query_Clause = "Select * FROM Win32_NTLogEvent WHERE Type = 'Erreur'"
$objWMIService = ObjGet ( "winmgmts:{impersonationLevel = impersonate , ( Security ) }!\\" & @ComputerName & "\root\cimv2" )
If IsObj ( $objWMIService ) Then
$colItems = $objWMIService.ExecQuery ( $Query_Clause )
If IsObj ( $colItems ) Then
;~ initialisation du compteur
$a = 0
For $objEvent In $colItems
$Output = ""
if StringLeft ( $objEvent.TimeWritten , 8 ) = "20071105" then
;~ je compte uniquement sur la date 05 11 2007
$a = $a + 1
$Output & = "Category: " & $objEvent.Category & @CRLF
$Output & = "Computer Name: " & $objEvent.ComputerName & @CRLF
$Output & = "Event Code: " & $objEvent.EventCode & @CRLF
$Output & = "Message: " & $objEvent.Message & @CRLF
$Output & = "Record Number: " & $objEvent.RecordNumber & @CRLF
$Output & = "Source Name: " & $objEvent.SourceName & @CRLF
$Output & = "Time Written: " & $objEvent.TimeWritten & @CRLF
$Output & = "Event Type: " & $objEvent.Type & @CRLF
$Output & = "User: " & $objEvent.User & @CRLF
EndIf
;~ If MsgBox ( 4 , "Entry Found:" , $Output & @CRLF & @CRLF & "Continue?" , 1 ) = 7 Then Exit
Next
MsgBox ( 0 , "nombre d'erreur le 05 11 2007 = > " , $a )
Else
MsgBox ( 16 , "Error" , "$colItems is not an object." )
EndIf
Else
MsgBox ( 16 , "Error" , "$objWMIService is not an object." )
EndIf
Dans l’exemple je sélectionne les erreurs de la source system et le 05 11 2007
Et je compte le nombre d’erreur
Mais je voudrais en faire une synthèse (j’avais trouver sur le net un programme qui fonctionnais comme ça, mais un jour, un poste a eu une erreur de disque cdrom et le programme à envoyé au moins 2000 emails dans l’heure !! c'a fait désordre)
Alors voila
J’ai par exemple un faux fichier observateur d’événement comme ci-dessous
05 11 2007 system erreur disque
O5 11 2007 system erreur virus
05 11 2007 system erreur disque
05 11 2007 system erreur dcom
05 11 2007 system erreur disque
05 11 2007 system erreur virus
Et je voudrais un état par jour du genre
Il y a le 05 11 2007 sur le poste machin
3 erreurs disque
2 erreurs virus
1 erreur dcom
Le nom des erreurs étant inconnu avant la synthèse
Ainsi que l’ordre d’apparition
Je sais comme dans l’exemple sélectionner par date
Je sais également éliminer des erreurs connus et pas intéressantes ex. print
Mais je ne vois comment trier et synthétiser les erreurs
Je ne vous demande pas une solution toute faite
Mais les outils ou fonction qui pourrai m’aider
Ou éventuellement un exemple de gestion de base de donnée ou tableau multi, enfin justement je ne sais pas quoi
Merci à tous
A+ jl56
ps genial le forumcolor par contre des retour chariot ne sont pas pris en compte