Question
Get-WinEvent
- Ludovic B
- Auteur du sujet
- Hors Ligne
- Membre senior
-
Réduire
Plus d'informations
- Messages : 48
- Remerciements reçus 1
il y a 9 ans 3 mois #23211
par Ludovic B
Get-WinEvent a été créé par Ludovic B
Bonjour à tous,
voici un léger problème sur la remonté d'information d'un Get-WinEvent .
voici le script :
[code:1]
$dateafter = [DateTime]'01/06/2017 05:00'
$session = New-PSSession -ComputerName xxxxxxx
$result = Invoke-Command -Session $Session -ScriptBlock {
$using:dateafter
# filtrage pour la recherche
$EventLogFilter = @{ logname = 'System'; id = 6009; StartTime = $using:dateafter }
$LogonEvents = (Get-WinEvent -FilterHashtable $EventLogFilter)
$LogonEvents
[int]$nblog = $LogonEvents.count # pour avoir le nombre events
[int]$nblog
}
remove-pssession $session
$result
[/code:1]
Le résultat :
vendredi 6 janvier 2017 05:00:00
TimeCreated : 06/01/2017 07:43:30
ProviderName : EventLog
Id : 6009
Message : Microsoft (R) Windows (R) 6.01. 7601 Service Pack 1 Multiprocessor Free.
PSComputerName : xxxxxx
0
Comment dire ,j'ai bien un event mais le count est de 0 !
PS serveur cible PSversion 2.0
Script ecrit avec SAPIEN PSversion 5.0
merci de votre aide.
voici un léger problème sur la remonté d'information d'un Get-WinEvent .
voici le script :
[code:1]
$dateafter = [DateTime]'01/06/2017 05:00'
$session = New-PSSession -ComputerName xxxxxxx
$result = Invoke-Command -Session $Session -ScriptBlock {
$using:dateafter
# filtrage pour la recherche
$EventLogFilter = @{ logname = 'System'; id = 6009; StartTime = $using:dateafter }
$LogonEvents = (Get-WinEvent -FilterHashtable $EventLogFilter)
$LogonEvents
[int]$nblog = $LogonEvents.count # pour avoir le nombre events
[int]$nblog
}
remove-pssession $session
$result
[/code:1]
Le résultat :
vendredi 6 janvier 2017 05:00:00
TimeCreated : 06/01/2017 07:43:30
ProviderName : EventLog
Id : 6009
Message : Microsoft (R) Windows (R) 6.01. 7601 Service Pack 1 Multiprocessor Free.
PSComputerName : xxxxxx
0
Comment dire ,j'ai bien un event mais le count est de 0 !
PS serveur cible PSversion 2.0
Script ecrit avec SAPIEN PSversion 5.0
merci de votre aide.
Connexion ou Créer un compte pour participer à la conversation.
- Marc
- Hors Ligne
- Membre premium
-
Réduire
Plus d'informations
- Messages : 90
- Remerciements reçus 0
il y a 9 ans 3 mois #23212
par Marc
Réponse de Marc sur le sujet Re:Get-WinEvent
C'est marrant, je suis en train de plancher exactement sur le même comportement mais avec un count sur un CSV:
[code:1]
<#contenue du CSV
1;2
coucou;salut
#>
$tesCSV = Import-Csv 'c:\temp\test.csv' -UseCulture
$testCSV.count # return \"\"
$testCSV | Measure-Object | Select-Object -ExpandProperty count #return 1
[/code:1]

Avec Measure-Object le count est OK
[code:1]
<#contenue du CSV
1;2
coucou;salut
#>
$tesCSV = Import-Csv 'c:\temp\test.csv' -UseCulture
$testCSV.count # return \"\"
$testCSV | Measure-Object | Select-Object -ExpandProperty count #return 1
[/code:1]
Avec Measure-Object le count est OK
Connexion ou Créer un compte pour participer à la conversation.
- Ludovic B
- Auteur du sujet
- Hors Ligne
- Membre senior
-
Réduire
Plus d'informations
- Messages : 48
- Remerciements reçus 1
il y a 9 ans 3 mois #23213
par Ludovic B
Réponse de Ludovic B sur le sujet Re:Get-WinEvent
merci marche nickel.
mais pourquoi cela ne fonctionne pas avec le $LogonEvents.count, bug!
mais pourquoi cela ne fonctionne pas avec le $LogonEvents.count, bug!
Connexion ou Créer un compte pour participer à la conversation.
- Philippe
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 1778
- Remerciements reçus 21
il y a 9 ans 3 mois #23214
par Philippe
Réponse de Philippe sur le sujet Re:Get-WinEvent
ludoob écrit:
mais pour fais simple, quand tu a aucun ou un seul element dans ta variable et bien ce n'est pas un tableau
et comme ce n'est pas un tableau alors il n'y a pas en autre la propriété \"count\"
après chacun son astuce pour contourner le problème
moi je force un format tableau tu type de la variable
par exemple dans ton cas ta variable est de type \"System.Diagnostics.Eventing.Reader.EventLogRecord\" auquel je rajout \"[]\" pour avoir une réponse de type tableau
[code:1] $LogonEvents = [System.Diagnostics.Eventing.Reader.EventLogRecord[]](Get-WinEvent -FilterHashtable $EventLogFilter)
$LogonEvents.Count
[/code:1]<br><br>Message édité par: 6ratgus, à: 20/02/17 16:45
Laurent Dardenne te l'expliquerais 100 fois mieux que moi !!!mais pourquoi cela ne fonctionne pas avec le $LogonEvents.count, bug!
mais pour fais simple, quand tu a aucun ou un seul element dans ta variable et bien ce n'est pas un tableau
et comme ce n'est pas un tableau alors il n'y a pas en autre la propriété \"count\"
après chacun son astuce pour contourner le problème
moi je force un format tableau tu type de la variable
par exemple dans ton cas ta variable est de type \"System.Diagnostics.Eventing.Reader.EventLogRecord\" auquel je rajout \"[]\" pour avoir une réponse de type tableau
[code:1] $LogonEvents = [System.Diagnostics.Eventing.Reader.EventLogRecord[]](Get-WinEvent -FilterHashtable $EventLogFilter)
$LogonEvents.Count
[/code:1]<br><br>Message édité par: 6ratgus, à: 20/02/17 16:45
Connexion ou Créer un compte pour participer à la conversation.
- xyz
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 6311
- Remerciements reçus 69
il y a 9 ans 3 mois #23215
par xyz
Tutoriels PowerShell
Réponse de xyz sur le sujet Re:Get-WinEvent
Salut,
6ratgus écrit:
Ensuite je n'arrive pas à reproduire le pb.
Si on ne connait pas le type on peut aussi forcer la création d'un tableau avec @( instructions ).
Et depuis la v3 PS ajoute une pseudo propriété .Count à chaque instance d'objet ainsi ce pb ne se pose plus, mais un autre persiste.
Si on modifie la règle de gestion des propriétés le code est en erreur :
[code:1]
$tesCSV.count
#1
set-strictmode -version latest
$tesCSV.count
#The property 'count' cannot be found on this object. Verify that the property exists.
[/code:1]
Ceci dit marcci la variable est mal nommée dans ton code.
J'ajoute le plus souvent possible le @() pour être assuré de tjr recevoir un tableau, du code en plus mais des pb en moins
<br><br>Message édité par: Laurent Dardenne, à: 20/02/17 23:43
6ratgus écrit:
Non je pense pas, plus détaillé peut être.Laurent Dardenne te l'expliquerais 100 fois mieux que moi !!!
Ensuite je n'arrive pas à reproduire le pb.
Si on ne connait pas le type on peut aussi forcer la création d'un tableau avec @( instructions ).
Et depuis la v3 PS ajoute une pseudo propriété .Count à chaque instance d'objet ainsi ce pb ne se pose plus, mais un autre persiste.
Si on modifie la règle de gestion des propriétés le code est en erreur :
[code:1]
$tesCSV.count
#1
set-strictmode -version latest
$tesCSV.count
#The property 'count' cannot be found on this object. Verify that the property exists.
[/code:1]
Ceci dit marcci la variable est mal nommée dans ton code.
J'ajoute le plus souvent possible le @() pour être assuré de tjr recevoir un tableau, du code en plus mais des pb en moins
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- Marc
- Hors Ligne
- Membre premium
-
Réduire
Plus d'informations
- Messages : 90
- Remerciements reçus 0
il y a 9 ans 3 mois #23216
par Marc
Réponse de Marc sur le sujet Re:Get-WinEvent
Désolé pour la coquille dans mon code 
Entre @() et measure-object je ne sais pas lequel rajoute le plus de code
D'un coté 3 caractères de l'autre une ligne avec des pipe.
Je pense m'orienter vers le @()
Entre @() et measure-object je ne sais pas lequel rajoute le plus de code
D'un coté 3 caractères de l'autre une ligne avec des pipe.
Je pense m'orienter vers le @()
Connexion ou Créer un compte pour participer à la conversation.
Temps de génération de la page : 0.044 secondes
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Entraide pour les débutants
- Get-WinEvent