Question Lire dans un journal d'évènements

Plus d'informations
il y a 15 ans 1 mois #8675 par Van_De
C'est bon cela fonctionne à merveille :) Merci beaucoup !

Maintenant vais me briser les neurones à chercher comment m'envoyer un mail si la liste d’évènements est vide :P

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

Plus d'informations
il y a 15 ans 1 mois #8681 par Van_De
Désolé de revenir si tôt :blush: ! Mais j'ai un petit problème dans la suite de mon script :S Je mets le script et explique mon problème par la suite :)

[code:1]#########################Script lecture Eventlog###########################

#Création des varibales
$date = (Get-Date).ToString(\"dd/MM/yyyy\"«») -as [DateTime]

#Récupération des informations dans le journal d'évenements (ID 12322 = VSS)
Get-EventLog -LogName Application -After $date | Where-Object {$_.EventID -eq 12322} -OutVariable Eventlog

If ($Eventlog -eq $null)
{Write-Host Vide}
Else
{Write-Host Pas vide}

[/code:1]

Les commandes Write-Host ne sont que pour effectuer des tests ! A terme cela sera une commande Send-MailMessage s'il n'y à pas d'évenements récupérés !!

Donc voila mon problème actuellement c'est que même si ma variable $Eventlog ne contient aucun evenement, il effectue un \"else\" !! Je ne comprends pas pourquoi ! J'imagine que ma ligne [code:1]($Eventlog -eq $null[/code:1] n'est pas correct, mais je ne trouve pas comment faire :s

Besoin d'aide,

Merci d'avance<br><br>Message édité par: Van_De, à: 2/02/11 11:17

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

Plus d'informations
il y a 15 ans 1 mois #8682 par Jacques Barathon
La variable $eventLog existe bien, c'est un tableau qui ne contient aucun élément.

Pour t'en convaincre :

[code:1]
# vérification du type de la variable $eventlog :

PS&gt; get-member -in $eventlog

TypeName: System.Collections.ArrayList

Name MemberType Definition
----

...

# vérification du type des objets contenus par $eventlog :

PS&gt; $eventlog | get-member
Get-Member : No object has been specified to the get-member cmdlet.
[/code:1]

Donc, pour faire un test valable, il faut simplement tester l'existence d'un contenu à ta variable ainsi :

[code:1]
if ($eventlog)
{
\&quot;pas vide\&quot;
}
else
{
\&quot;vide\&quot;
}
[/code:1]

De manière plus explicite, tu pourrais aussi tester la propriété Count du tableau :

[code:1]
if ($eventlog.count)
{
\&quot;pas vide : {0} évènement(s)\&quot; -f $eventlog.count
}
else
{
\&quot;vide\&quot;
}
[/code:1]

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

Plus d'informations
il y a 15 ans 1 mois #8688 par Van_De
janel écrit:

La variable $eventLog existe bien, c'est un tableau qui ne contient aucun élément.

Pour t'en convaincre :

[code:1]
# vérification du type de la variable $eventlog :

PS&gt; get-member -in $eventlog

TypeName: System.Collections.ArrayList

Name MemberType Definition
----



...

# vérification du type des objets contenus par $eventlog :

PS&gt; $eventlog | get-member
Get-Member : No object has been specified to the get-member cmdlet.
[/code:1]

Donc, pour faire un test valable, il faut simplement tester l'existence d'un contenu à ta variable ainsi :

[code:1]
if ($eventlog)
{
\&quot;pas vide\&quot;
}
else
{
\&quot;vide\&quot;
}
[/code:1]

De manière plus explicite, tu pourrais aussi tester la propriété Count du tableau :

[code:1]
if ($eventlog.count)
{
\&quot;pas vide : {0} évènement(s)\&quot; -f $eventlog.count
}
else
{
\&quot;vide\&quot;
}
[/code:1]


Ah d'accord je ne savais pas qu'elle existait déja ! Moi je voulais en créer une nouvelle ! Ou utilisais celle la comme tu me le conseille :)

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

Plus d'informations
il y a 15 ans 1 mois #8690 par Jacques Barathon
Elle n'existe pas \&quot;déjà\&quot;. Elle est créée quand tu fais ton \&quot;-outvariable\&quot;. Ce que je voulais dire, c'est qu'elle est créée de toute façon, qu'il y ait des évènements ou pas.

Simplement, s'il n'y a pas d'évènement, $eventlog reste un tableau vide, alors que s'il y a ne serait-ce qu'un évènement, $eventlog est un tableau contenant tous les évènements retournés.

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

Plus d'informations
il y a 15 ans 1 mois #8694 par Van_De
D'accord merci, je viens de comprendre ! Tout fonctionne sauf qu'en fait il faudrait que sa récupère sur les 2 derniers jours ! Est ce possible d'indiquer au get-date jour J-1 en gros ?

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

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