Question
Lire dans un journal d'évènements
- Van_De
- Auteur du sujet
- Hors Ligne
- Membre senior
-
Réduire
Plus d'informations
- Messages : 59
- Remerciements reçus 0
il y a 15 ans 1 mois #8675
par Van_De
Réponse de Van_De sur le sujet Re:Lire dans un journal d'évènements
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
Maintenant vais me briser les neurones à chercher comment m'envoyer un mail si la liste d’évènements est vide
Connexion ou Créer un compte pour participer à la conversation.
- Van_De
- Auteur du sujet
- Hors Ligne
- Membre senior
-
Réduire
Plus d'informations
- Messages : 59
- Remerciements reçus 0
il y a 15 ans 1 mois #8681
par Van_De
Réponse de Van_De sur le sujet Re:Lire dans un journal d'évènements
Désolé de revenir si tôt
! Mais j'ai un petit problème dans la suite de mon script
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
Besoin d'aide,
Merci d'avance<br><br>Message édité par: Van_De, à: 2/02/11 11:17
[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
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.
- Jacques Barathon
- Hors Ligne
- Administrateur
-
Réduire
Plus d'informations
- Messages : 576
- Remerciements reçus 0
il y a 15 ans 1 mois #8682
par Jacques Barathon
Réponse de Jacques Barathon sur le sujet Re:Lire dans un journal d'évènements
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> get-member -in $eventlog
TypeName: System.Collections.ArrayList
Name MemberType Definition
----
...
# vérification du type des objets contenus par $eventlog :
PS> $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)
{
\"pas vide\"
}
else
{
\"vide\"
}
[/code:1]
De manière plus explicite, tu pourrais aussi tester la propriété Count du tableau :
[code:1]
if ($eventlog.count)
{
\"pas vide : {0} évènement(s)\" -f $eventlog.count
}
else
{
\"vide\"
}
[/code:1]
Pour t'en convaincre :
[code:1]
# vérification du type de la variable $eventlog :
PS> get-member -in $eventlog
TypeName: System.Collections.ArrayList
Name MemberType Definition
----
...
# vérification du type des objets contenus par $eventlog :
PS> $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)
{
\"pas vide\"
}
else
{
\"vide\"
}
[/code:1]
De manière plus explicite, tu pourrais aussi tester la propriété Count du tableau :
[code:1]
if ($eventlog.count)
{
\"pas vide : {0} évènement(s)\" -f $eventlog.count
}
else
{
\"vide\"
}
[/code:1]
Connexion ou Créer un compte pour participer à la conversation.
- Van_De
- Auteur du sujet
- Hors Ligne
- Membre senior
-
Réduire
Plus d'informations
- Messages : 59
- Remerciements reçus 0
il y a 15 ans 1 mois #8688
par Van_De
Réponse de Van_De sur le sujet Re:Lire dans un journal d'évènements
janel écrit:
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
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> get-member -in $eventlog
TypeName: System.Collections.ArrayList
Name MemberType Definition
----
...
# vérification du type des objets contenus par $eventlog :
PS> $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)
{
\"pas vide\"
}
else
{
\"vide\"
}
[/code:1]
De manière plus explicite, tu pourrais aussi tester la propriété Count du tableau :
[code:1]
if ($eventlog.count)
{
\"pas vide : {0} évènement(s)\" -f $eventlog.count
}
else
{
\"vide\"
}
[/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.
- Jacques Barathon
- Hors Ligne
- Administrateur
-
Réduire
Plus d'informations
- Messages : 576
- Remerciements reçus 0
il y a 15 ans 1 mois #8690
par Jacques Barathon
Réponse de Jacques Barathon sur le sujet Re:Lire dans un journal d'évènements
Elle n'existe pas \"déjà\". Elle est créée quand tu fais ton \"-outvariable\". 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.
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.
- Van_De
- Auteur du sujet
- Hors Ligne
- Membre senior
-
Réduire
Plus d'informations
- Messages : 59
- Remerciements reçus 0
il y a 15 ans 1 mois #8694
par Van_De
Réponse de Van_De sur le sujet Re:Lire dans un journal d'évènements
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
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Entraide pour les débutants
- Lire dans un journal d'évènements