Question Filtrer rapidement l'event viewer
- TIti
- Auteur du sujet
- Hors Ligne
- Membre junior
-
Réduire
Plus d'informations
- Messages : 39
- Remerciements reçus 0
il y a 16 ans 3 semaines #860
par TIti
Filtrer rapidement l'event viewer a été créé par TIti
Bonjour,
La recherche d'évènements dans l'event viewer peut être plus rapide et plus simple grâce à powershell.
Voici de quoi trier par date et type d'évènements
La Cmdlet Get-date permet d'utiliser les dates avec une facilité déconcertante.
La Cmdlet Read-host de récupérer la saisie clavier
Voici dans l'exemple suivant la liste des events de type 6009 sur les 2 derniers jours dans l'event system (je réponds donc 2 puis system puis 6009 aux questions posées)
[code:1]### Collecte d'informations ###
$r=read-host \"Nombre de jours d'historique \"
$t= read-host \"Type d'évènements \" ### system, application ...etc
$n=read-host \"N° d'enventID \"
### date du jour ###
$date=get-date
### retire $r journée(s)à la date du jour et utilise cette nouvelle valeur ###
$dateok=$date.adddays(-$r)
get-eventlog $t|where {$_.timewritten -ge \"$dateok\"}|where {$_.eventid -eq \"$n\"}[/code:1]
Arnaud, Janel et les autres... je vous laisse retirer les lignes inutiles
La recherche d'évènements dans l'event viewer peut être plus rapide et plus simple grâce à powershell.
Voici de quoi trier par date et type d'évènements
La Cmdlet Get-date permet d'utiliser les dates avec une facilité déconcertante.
La Cmdlet Read-host de récupérer la saisie clavier
Voici dans l'exemple suivant la liste des events de type 6009 sur les 2 derniers jours dans l'event system (je réponds donc 2 puis system puis 6009 aux questions posées)
[code:1]### Collecte d'informations ###
$r=read-host \"Nombre de jours d'historique \"
$t= read-host \"Type d'évènements \" ### system, application ...etc
$n=read-host \"N° d'enventID \"
### date du jour ###
$date=get-date
### retire $r journée(s)à la date du jour et utilise cette nouvelle valeur ###
$dateok=$date.adddays(-$r)
get-eventlog $t|where {$_.timewritten -ge \"$dateok\"}|where {$_.eventid -eq \"$n\"}[/code:1]
Arnaud, Janel et les autres... je vous laisse retirer les lignes inutiles

Connexion ou Créer un compte pour participer à la conversation.
- Robin Lemesle
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 260
- Remerciements reçus 0
il y a 16 ans 3 semaines #861
par Robin Lemesle
Robin MVP PowerShell
Réponse de Robin Lemesle sur le sujet Re:Filtrer rapidement l'event viewer
Salut berurier !
Juste une petite remarque, je pense qu'il serait meilleur d'utiliser un opérateur (-and) plutot que de faire deux pipelines compinés.
[code:1]
get-eventlog $t|where {($_.timewritten -ge \"$dateok\"«») -and ($_.eventid -eq \"$n\"«»)}[/code:1]
tu gagneras par la même occasion un peu de temps de traitement
essai ceci pour comparer :
[code:1]measure-command {get-eventlog $t|where {($_.timewritten -ge \"$dateok\"«») -and ($_.eventid -eq \"$n\"«»)}}
measure-command {get-eventlog $t|where {($_.timewritten -ge \"$dateok\"«»)} | where {($_.eventid -eq \"$n\"«»)}}[/code:1]
Sinon, c'est bien
<br><br>Message édité par: robin, à: 28/08/07 08:44
Juste une petite remarque, je pense qu'il serait meilleur d'utiliser un opérateur (-and) plutot que de faire deux pipelines compinés.
[code:1]
get-eventlog $t|where {($_.timewritten -ge \"$dateok\"«») -and ($_.eventid -eq \"$n\"«»)}[/code:1]
tu gagneras par la même occasion un peu de temps de traitement

essai ceci pour comparer :
[code:1]measure-command {get-eventlog $t|where {($_.timewritten -ge \"$dateok\"«») -and ($_.eventid -eq \"$n\"«»)}}
measure-command {get-eventlog $t|where {($_.timewritten -ge \"$dateok\"«»)} | where {($_.eventid -eq \"$n\"«»)}}[/code:1]
Sinon, c'est bien

Robin MVP PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- Arnaud Petitjean
-
- Hors Ligne
- Modérateur
-
il y a 16 ans 3 semaines #863
par Arnaud Petitjean
MVP PowerShell et créateur de ce magnifique forum
Auteur de 6 livres PowerShell aux éditions ENI
Fondateur de la société Start-Scripting
Besoin d'une formation PowerShell ou d'un conseil ?
Réponse de Arnaud Petitjean sur le sujet Re:Filtrer rapidement l'event viewer
Très bien Berurier mais l'idéal serait de faire de ce script une fonction pour passer les valeurs en paramètres. 
Arnaud

Arnaud
MVP PowerShell et créateur de ce magnifique forum

Auteur de 6 livres PowerShell aux éditions ENI
Fondateur de la société Start-Scripting
Besoin d'une formation PowerShell ou d'un conseil ?
Connexion ou Créer un compte pour participer à la conversation.
- TIti
- Auteur du sujet
- Hors Ligne
- Membre junior
-
Réduire
Plus d'informations
- Messages : 39
- Remerciements reçus 0
il y a 16 ans 3 semaines #865
par TIti
Réponse de TIti sur le sujet Re:Filtrer rapidement l'event viewer
Re,
Une proposition (à affiner).
Je ne sais pas trop comment traiter la date autrement que par les lignes 3 et 4 ... Bof,bof ...
L'utilisation de la fonction se fait de la façon suivante :
filtre_events nom jouràretirer eventID
Par exemple \"filtre_events system -10 6009\"
La fonction :
[code:1]function filtre_events
{param($nom,$date,$event)
$datedujour=get-date
$datedujour=$datedujour.adddays($date)
Write-host \"\"
Write-host \"Evenements $nom N° $event depuis le $datedujour\" -foregroundcolor red -backgroundColor white
get-eventlog $nom|where {($_.timewritten -ge \"$datedujour\"«») -and ($_.eventid -eq \"$event\"«»)}
}[/code:1]
Le résultat
P:\> filtre_events system -10 6009
Evenements system N° 6009 depuis le 08/18/2007 12:51:16
Index Time Type Source EventID Message
---- ----
7258 août 28 09:12 Info EventLog 6009 Microsoft (R) Windows (R) 5.01. 2600 Service Pack 2
4762 août 23 17:15 Info EventLog 6009 Microsoft (R) Windows (R) 5.01. 2600 Service Pack 2
4746 août 23 17:13 Info EventLog 6009 Microsoft (R) Windows (R) 5.01. 2600 Service Pack 2
4716 août 23 08:52 Info EventLog 6009 Microsoft (R) Windows (R) 5.01. 2600 Service Pack 2
4679 août 22 08:52 Info EventLog 6009 Microsoft (R) Windows (R) 5.01. 2600 Service Pack 2
4661 août 21 16:33 Info EventLog 6009 Microsoft (R) Windows (R) 5.01. 2600 Service Pack 2
4009 août 20 08:54 Info EventLog 6009 Microsoft (R) Windows (R) 5.01. 2600 Service Pack 2<br><br>Message édité par: Berurier, à: 28/08/07 13:03
Une proposition (à affiner).
Je ne sais pas trop comment traiter la date autrement que par les lignes 3 et 4 ... Bof,bof ...
L'utilisation de la fonction se fait de la façon suivante :
filtre_events nom jouràretirer eventID
Par exemple \"filtre_events system -10 6009\"
La fonction :
[code:1]function filtre_events
{param($nom,$date,$event)
$datedujour=get-date
$datedujour=$datedujour.adddays($date)
Write-host \"\"
Write-host \"Evenements $nom N° $event depuis le $datedujour\" -foregroundcolor red -backgroundColor white
get-eventlog $nom|where {($_.timewritten -ge \"$datedujour\"«») -and ($_.eventid -eq \"$event\"«»)}
}[/code:1]
Le résultat
P:\> filtre_events system -10 6009
Evenements system N° 6009 depuis le 08/18/2007 12:51:16
Index Time Type Source EventID Message
---- ----
7258 août 28 09:12 Info EventLog 6009 Microsoft (R) Windows (R) 5.01. 2600 Service Pack 2
4762 août 23 17:15 Info EventLog 6009 Microsoft (R) Windows (R) 5.01. 2600 Service Pack 2
4746 août 23 17:13 Info EventLog 6009 Microsoft (R) Windows (R) 5.01. 2600 Service Pack 2
4716 août 23 08:52 Info EventLog 6009 Microsoft (R) Windows (R) 5.01. 2600 Service Pack 2
4679 août 22 08:52 Info EventLog 6009 Microsoft (R) Windows (R) 5.01. 2600 Service Pack 2
4661 août 21 16:33 Info EventLog 6009 Microsoft (R) Windows (R) 5.01. 2600 Service Pack 2
4009 août 20 08:54 Info EventLog 6009 Microsoft (R) Windows (R) 5.01. 2600 Service Pack 2<br><br>Message édité par: Berurier, à: 28/08/07 13:03
Connexion ou Créer un compte pour participer à la conversation.
- Robin Lemesle
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 260
- Remerciements reçus 0
il y a 16 ans 3 semaines #866
par Robin Lemesle
Tu veux dire en une ligne comme cela ?
[code:1]
$datedujour=(get-date).adddays($jours)[/code:1]
Attention j'ai remplacé la variable $date par $jours qui est plus parlante quant on parle du nombre de jours.
Robin MVP PowerShell
Réponse de Robin Lemesle sur le sujet Re:Filtrer rapidement l'event viewer
Je ne sais pas trop comment traiter la date autrement que par les lignes 3 et 4 ... Bof,bof ...
Tu veux dire en une ligne comme cela ?
[code:1]
$datedujour=(get-date).adddays($jours)[/code:1]
Attention j'ai remplacé la variable $date par $jours qui est plus parlante quant on parle du nombre de jours.
Robin MVP PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- Robin Lemesle
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 260
- Remerciements reçus 0
il y a 16 ans 3 semaines #867
par Robin Lemesle
Robin MVP PowerShell
Réponse de Robin Lemesle sur le sujet Re:Filtrer rapidement l'event viewer
Ha oui, j'oubliais...
tu peux aussi forcer le type de tes paramètres. cela facilite la relecture et évite de se tromper dans les types attendus.
[code:1]param([string]$nom,[int]$date,[int]$event)[/code:1]
de plus comme tu utilises des paramètres pour ton script et non des arguments, tu peux l'appeler ainsi :
[code:1]filtre_events -nom system -date (-10) -event 6009\"[/code:1]
tu peux aussi forcer le type de tes paramètres. cela facilite la relecture et évite de se tromper dans les types attendus.
[code:1]param([string]$nom,[int]$date,[int]$event)[/code:1]
de plus comme tu utilises des paramètres pour ton script et non des arguments, tu peux l'appeler ainsi :
[code:1]filtre_events -nom system -date (-10) -event 6009\"[/code:1]
Robin MVP PowerShell
Connexion ou Créer un compte pour participer à la conversation.
Temps de génération de la page : 0.052 secondes
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Contributions à la communauté
- Filtrer rapidement l'event viewer