Question Lire dans un journal d'évènements

Plus d'informations
il y a 15 ans 1 mois #8663 par Van_De
Bonjour,

Je mets en place un script, qui devras récupérer certains évènements par ID mais aussi par date ! Pour l'ID j'ai trouver ! Mais pour la date :(

[code:1]
$date = Get-Date -UFormat \"%d/%m/%Y\"
Get-EventLog -LogName Application |
Where-Object {$_.EventID -eq 12322} |
Where-Object {$_.Timewritten -eq $date}
[/code:1]

J'ai essayer plusieurs choses, à la place de -eq pour la date de mettre -contains et pareil rien !
J'ai essayer avec les formats de date normaux, la je l'ai formater comme elle apparait dans le journal d'évenements !

Je n'avance pas donc :( !

Est ce que le problème viendrait :
- Du $_.Timewritten ?
- Du format de la date ?
- De moi qui est mal écrit mon code ?

Besoin d'aide s'il vous plait !!

Merci d'avance

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 15 ans 1 mois #8665 par EdouardG
Salut,
Si je mets le resultat d'un Get-EventLog dans un tableau $event et que j'affiche la propriété TimeWritten, je vois ça :

[code:1]
PS M:\> $event[1].TimeWritten

mardi 1 février 2011 11:23:55
[/code:1]

Peut être le format du coup ?

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 15 ans 1 mois #8666 par Van_De
Le problème c'est que je ne peux pas mettre ce format la car cela ne pourrais me lister les évenements ayant eu lieu durant cette journée ! Et c'est ça que je cherche à trouver :/

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 15 ans 1 mois #8667 par EdouardG
Alors peut être en utilisant les parametre -After et -Before de Get-EventLog ?

Ceci fonctionne de mon coté :
[code:1]
$date = Get-Date -UFormat \"%d/%m/%Y\"
Get-EventLog -LogName Application -After $date | Where-Object {$_.EventID -eq 8193}
[/code:1]

J'ai l'impression qu'il me sort les messages du jour.

Bon courage :)

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 15 ans 1 mois #8668 par Jacques Barathon
Ton problème vient de :

1) le choix de créer $date au format UDate, qui force son type à System.String au lieu de System.DateTime,

2) la notion d'égalité entre deux dates :

[code:1]
PS> $date1 = get-date
PS> $date2 = get-date
PS> $date1 -eq $date2
False
PS> $date1 -lt $date2
True
[/code:1]

En effet, deux dates prises à deux moments différents sont, par essence, différentes. Tu as donc très peu de chances d'avoir un évènement dont la date d'écriture est pile poil la date (y compris heures/minutes/secondes/...) à laquelle tu crées $date.

Pour tester si les deux dates correspondent au même jour de l'année, tu peux faire le test suivant :

[code:1]
PS> $date1.ToString(\"dd/MM/yyyy\"«») -eq $date2.ToString(\"dd/MM/yyyy\"«»)
True
[/code:1]

Cela dit, ton script peut être sérieusement amélioré sur plusieurs points :

1. D'une manière générale, l'enchaînement de plusieurs \"where\" revient à un seul \"where\" avec plusieurs conditions associées par AND :

[code:1]
Get-EventLog -LogName Application |
Where-Object {$_.EventID -eq 12322} |
Where-Object {$_.Timewritten -eq $date}
[/code:1]

... est équivalent à :

[code:1]
Get-EventLog -LogName Application |
Where-Object {$_.EventID -eq 12322 -and $_.Timewritten -eq $date}
[/code:1]

Mais la 2e syntaxe est plus courte, et probablement plus performante.

2. Concernant get-eventlog en particulier, tu peux faire des sélections sur la date directement en paramètres de la commande, ce qui t'évite d'enchaîner les \"where\" :

[code:1]
$date = (get-date).ToString(\"dd/MM/yyyy\"«») -as [DateTime]
get-eventlog -log application -after $date | where {$_.EventId -eq 12322}
[/code:1]

Si tu as besoin d'isoler un jour particulier, tu peux cumuler les paramètres -before et -after :

[code:1]
$date = \"31/01/2011\" -as [DateTime]
$date_fin = $date.AddDays(1)
get-eventlog -log application -after $date -before $date_fin | where {$_.EventId -eq 12322}
[/code:1]

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 15 ans 1 mois #8674 par Van_De
Merci beaucoup à vous deux ! Je teste sa et reviens vous dire ce qu'il en est :)

Connexion ou Créer un compte pour participer à la conversation.

Temps de génération de la page : 0.081 secondes
Propulsé par Kunena