OVH Cloud OVH Cloud

classe WMI "Win32_NTLogEvent"

10 réponses
Avatar
sgroulx
Bonjour,
A laide du vbscript je cherche a lire les événement du syteme.

voila mon code

'###debut du code
strComputer = "monordi"

Set wbemServices = GetObject("winmgmts:\\" & strComputer)
Set wbemObjectSet = wbemServices.InstancesOf("Win32_NTLogEvent")
i = 0
For Each wbemObject In wbemObjectSet
If wbemObject.LogFile = "System" then
If i < 1 then
WScript.Echo "Fichier de consignation: " & wbemObject.LogFile &
vbCrLf & _
"Heure généré: " & wbemObject.TimeGenerated & vbCrLf & _
"Source: " & wbemObject.SourceName & vbCrLf & _
"Message: " & wbemObject.Message & vbCrLf
i = i+1
Else
WScript.Quit
End If
End if
Next
'###fin du code


mais le problème ces que cé très long. il doit passer tous les event de
Application, security pour finalement me donne ce que je veux. (première
de event System)
puis-je le faire analysé seulement les évènement System et non les autre.
merci
Sébas

10 réponses

Avatar
Jacques Barathon [MS]
Voici un exemple tiré du Script Center de Microsoft
(http://www.microsoft.com/technet/scriptcenter/default.mspx):

--- couper ici ---
strComputer = "."Set objWMIService = GetObject("winmgmts:" _ &
"{impersonationLevel=impersonate}!" & strComputer & "rootcimv2")Set
colLoggedEvents = objWMIService.ExecQuery _ ("Select * from
Win32_NTLogEvent Where Logfile = 'System' and " _ & "EventCode =
'6008'")Wscript.Echo "Improper shutdowns: " & colLoggedEvents.Count---
couper ici ---

A mettre dans vos favoris ou mieux encore, télécharger l'ensemble des
scripts regroupés dans un fichier au format CHM (aide HTML).

Jacques

"sgroulx" <s_groulx(bidon)@videotron.ca> wrote in message
news:
Bonjour,
A laide du vbscript je cherche a lire les événement du syteme.

voila mon code

'###debut du code
strComputer = "monordi"

Set wbemServices = GetObject("winmgmts:" & strComputer)
Set wbemObjectSet = wbemServices.InstancesOf("Win32_NTLogEvent")
i = 0
For Each wbemObject In wbemObjectSet
If wbemObject.LogFile = "System" then
If i < 1 then
WScript.Echo "Fichier de consignation: " & wbemObject.LogFile &
vbCrLf & _
"Heure généré: " & wbemObject.TimeGenerated & vbCrLf & _
"Source: " & wbemObject.SourceName & vbCrLf & _
"Message: " & wbemObject.Message & vbCrLf
i = i+1
Else
WScript.Quit
End If
End if
Next
'###fin du code


mais le problème ces que cé très long. il doit passer tous les event de
Application, security pour finalement me donne ce que je veux. (première
de event System)
puis-je le faire analysé seulement les évènement System et non les autre.
merci
Sébas




Avatar
Jacques Barathon [MS]
Désolé pour le formatage abscons du script ci-dessous, un copier/coller
malheureux depuis un fichier HTML... Voici un nouvel essai j'espère plus
lisible:

--- couper ici ---
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!" & strComputer & "rootcimv2")
Set colLoggedEvents = objWMIService.ExecQuery _
("Select * from Win32_NTLogEvent Where Logfile = 'System' and " _
& "EventCode = '6008'")
Wscript.Echo "Improper shutdowns: " & colLoggedEvents.Count
--- couper ici ---

Jacques

"Jacques Barathon [MS]" wrote in message
news:
Voici un exemple tiré du Script Center de Microsoft
(http://www.microsoft.com/technet/scriptcenter/default.mspx):

--- couper ici ---
strComputer = "."Set objWMIService = GetObject("winmgmts:" _ &
"{impersonationLevel=impersonate}!" & strComputer & "rootcimv2")Set
colLoggedEvents = objWMIService.ExecQuery _ ("Select * from
Win32_NTLogEvent Where Logfile = 'System' and " _ & "EventCode
= '6008'")Wscript.Echo "Improper shutdowns: " & colLoggedEvents.Count---
couper ici ---

A mettre dans vos favoris ou mieux encore, télécharger l'ensemble des
scripts regroupés dans un fichier au format CHM (aide HTML).

Jacques

"sgroulx" <s_groulx(bidon)@videotron.ca> wrote in message
news:
Bonjour,
A laide du vbscript je cherche a lire les événement du syteme.

voila mon code

'###debut du code
strComputer = "monordi"

Set wbemServices = GetObject("winmgmts:" & strComputer)
Set wbemObjectSet = wbemServices.InstancesOf("Win32_NTLogEvent")
i = 0
For Each wbemObject In wbemObjectSet
If wbemObject.LogFile = "System" then
If i < 1 then
WScript.Echo "Fichier de consignation: " & wbemObject.LogFile &
vbCrLf & _
"Heure généré: " & wbemObject.TimeGenerated & vbCrLf & _
"Source: " & wbemObject.SourceName & vbCrLf & _
"Message: " & wbemObject.Message & vbCrLf
i = i+1
Else
WScript.Quit
End If
End if
Next
'###fin du code


mais le problème ces que cé très long. il doit passer tous les event de
Application, security pour finalement me donne ce que je veux. (première
de event System)
puis-je le faire analysé seulement les évènement System et non les autre.
merci
Sébas








Avatar
Jean
Bonjour,


A mettre dans vos favoris ou mieux encore, télécharger l'ensemble des scripts regroupés dans un fichier au format CHM (aide HTML).



Pour complément d'info, le lien de téléchargement de cette archive est :
http://www.microsoft.com/downloads/details.aspx?displaylang=en&familyid´cb2678-dafb-4e30-b2da-b8814fe2da5a

L'ancienne version est ici :
http://download.microsoft.com/download/.netenterpriseserver/utility/1.0/nt5xp/en-us/netscrpt.exe
(juste parceque j'aime bien l'exemple de création d'un HTA :O), cf rubrique Entreprise Scripts/Create an Hta)

Amicalement,

Jean - JMST
Belgium

Avatar
sgroulx
"Jean" <http:// a écrit dans le message de
news:%
Bonjour,


A mettre dans vos favoris ou mieux encore, télécharger l'ensemble des
scripts regroupés dans un fichier au format CHM (aide HTML).





Pour complément d'info, le lien de téléchargement de cette archive est :

http://www.microsoft.com/downloads/details.aspx?displaylang=en&familyid´cb2678-dafb-4e30-b2da-b8814fe2da5a




merci pour le lien tres pratique :)
Sébas


L'ancienne version est ici :

http://download.microsoft.com/download/.netenterpriseserver/utility/1.0/nt5xp/en-us/netscrpt.exe

(juste parceque j'aime bien l'exemple de création d'un HTA :O), cf
rubrique Entreprise Scripts/Create an Hta)


Amicalement,

Jean - JMST
Belgium







Avatar
sympatix
Bonjour !

(juste parceque j'aime bien l'exemple de création d'un HTA :O)...


C'est vrai que le chapitre du HTA a l'air d'avoir été écrit un poil plus
vite que le reste...
ça a l'avantage d'être clair, et simple ;-)
--
Cordialement
Sympatix

(nospam: pour m'écrire, ôter les toto)

Avatar
sgroulx
"Jacques Barathon [MS]" a écrit dans le
message de news:
Voici un exemple tiré du Script Center de Microsoft
(http://www.microsoft.com/technet/scriptcenter/default.mspx):

--- couper ici ---
strComputer = "."Set objWMIService = GetObject("winmgmts:" _ &
"{impersonationLevel=impersonate}!" & strComputer & "rootcimv2")Set
colLoggedEvents = objWMIService.ExecQuery _ ("Select * from
Win32_NTLogEvent Where Logfile = 'System' and " _ & "EventCode
'6008'")Wscript.Echo "Improper shutdowns: " & colLoggedEvents.Count---
couper ici ---

A mettre dans vos favoris ou mieux encore, télécharger l'ensemble des
scripts regroupés dans un fichier au format CHM (aide HTML).

Jacques



bonjour,
voila mon nouveau code.

strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!" & strComputer & "rootcimv2")
Set colLoggedEvents = objWMIService.ExecQuery _
("Select * from Win32_NTLogEvent Where Logfile = 'System'")

For Each objEvent in colLoggedEvents
reponce = "Category: " & objEvent.Category
reponce = reponce & vbcrlf& "Computer Name: " & objEvent.ComputerName
reponce = reponce & vbcrlf& "Event Code: " & objEvent.EventCode
reponce = reponce & vbcrlf& "Message: " & objEvent.Message
reponce = reponce & vbcrlf& "Record Number: " & objEvent.RecordNumber
reponce = reponce & vbcrlf& "Source Name: " & objEvent.SourceName
reponce = reponce & vbcrlf& "Time Written: " & objEvent.TimeWritten
reponce = reponce & vbcrlf& "Event Type: " & objEvent.Type
reponce = reponce & vbcrlf& "User: " & objEvent.User
MsgBox reponce
WScript.Quit 'test pour 1 evenement
Next

mais le problème c'est que le proces winmgmt grimpe a 100%. le seul moyen
que j'ai trouver pour le faire redescendre a été effacé le log dans event
viewer.
comme si la requête ne se serais pas ferme suit a wscript.quit
ai-je un moyen de le stop après en avoir terminé?
mais j'aurai jamais besoin de plus que les 15 premier évènement
Merci.
Sébas

Avatar
Jean
Bonjour,

Mettez un Sleep dans votre boucle :

For Each bla bla bla In bla bla ba
WScript.Sleep 10
bla bla bla
Next

Amicalement,

Jean - JMST
Belgium

"sgroulx" <s_groulx(bidon)@videotron.ca> a écrit dans le message de news:

"Jacques Barathon [MS]" a écrit dans le
message de news:
Voici un exemple tiré du Script Center de Microsoft
(http://www.microsoft.com/technet/scriptcenter/default.mspx):

--- couper ici ---
strComputer = "."Set objWMIService = GetObject("winmgmts:" _ &
"{impersonationLevel=impersonate}!" & strComputer & "rootcimv2")Set
colLoggedEvents = objWMIService.ExecQuery _ ("Select * from
Win32_NTLogEvent Where Logfile = 'System' and " _ & "EventCode
'6008'")Wscript.Echo "Improper shutdowns: " & colLoggedEvents.Count---
couper ici ---


A mettre dans vos favoris ou mieux encore, télécharger l'ensemble des
scripts regroupés dans un fichier au format CHM (aide HTML).

Jacques



bonjour,
voila mon nouveau code.

strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!" & strComputer & "rootcimv2")
Set colLoggedEvents = objWMIService.ExecQuery _
("Select * from Win32_NTLogEvent Where Logfile = 'System'")

For Each objEvent in colLoggedEvents
reponce = "Category: " & objEvent.Category
reponce = reponce & vbcrlf& "Computer Name: " & objEvent.ComputerName
reponce = reponce & vbcrlf& "Event Code: " & objEvent.EventCode
reponce = reponce & vbcrlf& "Message: " & objEvent.Message
reponce = reponce & vbcrlf& "Record Number: " & objEvent.RecordNumber
reponce = reponce & vbcrlf& "Source Name: " & objEvent.SourceName
reponce = reponce & vbcrlf& "Time Written: " & objEvent.TimeWritten
reponce = reponce & vbcrlf& "Event Type: " & objEvent.Type
reponce = reponce & vbcrlf& "User: " & objEvent.User
MsgBox reponce
WScript.Quit 'test pour 1 evenement
Next

mais le problème c'est que le proces winmgmt grimpe a 100%. le seul moyen
que j'ai trouver pour le faire redescendre a été effacé le log dans event
viewer.
comme si la requête ne se serais pas ferme suit a wscript.quit
ai-je un moyen de le stop après en avoir terminé?
mais j'aurai jamais besoin de plus que les 15 premier évènement
Merci.
Sébas






Avatar
sgroulx
"Jean" <http:// a écrit dans le message de
news:OVq03u%
Bonjour,

Mettez un Sleep dans votre boucle :

For Each bla bla bla In bla bla ba
WScript.Sleep 10
bla bla bla
Next


avec cela ca va pas seulement ralonger la duré execution de winmgmt.exe?
car je veux selement quil me fase un msgbox de la premiere evenement. pas
qui lisent les 10000 autre.
Sébas


Amicalement,

Jean - JMST
Belgium

"sgroulx" <s_groulx(bidon)@videotron.ca> a écrit dans le message de news:



"Jacques Barathon [MS]" a écrit dans le
message de news:
Voici un exemple tiré du Script Center de Microsoft
(http://www.microsoft.com/technet/scriptcenter/default.mspx):

--- couper ici ---
strComputer = "."Set objWMIService = GetObject("winmgmts:" _ &
"{impersonationLevel=impersonate}!" & strComputer & "rootcimv2")Set
colLoggedEvents = objWMIService.ExecQuery _ ("Select * from
Win32_NTLogEvent Where Logfile = 'System' and " _ &
"EventCode



'6008'")Wscript.Echo "Improper shutdowns: " & colLoggedEvents.Count---
couper ici ---



A mettre dans vos favoris ou mieux encore, télécharger l'ensemble des
scripts regroupés dans un fichier au format CHM (aide HTML).

Jacques



bonjour,
voila mon nouveau code.

strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!" & strComputer &
"rootcimv2")


Set colLoggedEvents = objWMIService.ExecQuery _
("Select * from Win32_NTLogEvent Where Logfile = 'System'")

For Each objEvent in colLoggedEvents
reponce = "Category: " & objEvent.Category
reponce = reponce & vbcrlf& "Computer Name: " & objEvent.ComputerName
reponce = reponce & vbcrlf& "Event Code: " & objEvent.EventCode
reponce = reponce & vbcrlf& "Message: " & objEvent.Message
reponce = reponce & vbcrlf& "Record Number: " & objEvent.RecordNumber
reponce = reponce & vbcrlf& "Source Name: " & objEvent.SourceName
reponce = reponce & vbcrlf& "Time Written: " & objEvent.TimeWritten
reponce = reponce & vbcrlf& "Event Type: " & objEvent.Type
reponce = reponce & vbcrlf& "User: " & objEvent.User
MsgBox reponce
WScript.Quit 'test pour 1 evenement
Next

mais le problème c'est que le proces winmgmt grimpe a 100%. le seul
moyen


que j'ai trouver pour le faire redescendre a été effacé le log dans
event


viewer.
comme si la requête ne se serais pas ferme suit a wscript.quit
ai-je un moyen de le stop après en avoir terminé?
mais j'aurai jamais besoin de plus que les 15 premier évènement
Merci.
Sébas












Avatar
Jacques Barathon [MS]
"sgroulx" <s_groulx(bidon)@videotron.ca> wrote in message
news:uc9Z25$

"Jean" <http:// a écrit dans le message de
news:OVq03u%
Bonjour,

Mettez un Sleep dans votre boucle :

For Each bla bla bla In bla bla ba
WScript.Sleep 10
bla bla bla
Next


avec cela ca va pas seulement ralonger la duré execution de winmgmt.exe?
car je veux selement quil me fase un msgbox de la premiere evenement. pas
qui lisent les 10000 autre.


Dans ce cas-là, pourquoi mets-tu MsgBox dans la boucle? Le script va t'en
créer autant qu'il y a d'évènements!


Avatar
Jean
Bonjour,

car je veux selement quil me fase un msgbox de la premiere evenement


comme ceci alors :

'---8<---
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!" & strComputer & "rootcimv2")
proprietes="Category,"&_
"ComputerName,"&_
"EventCode,"&_
"Message,"&_
"RecordNumber,"&_
"SourceName,"&_
"TimeWritten,"&_
"Type,"&_
"User"
Set colLoggedEvents = objWMIService.ExecQuery _
("Select "&proprietes&" from Win32_NTLogEvent Where Logfile = 'System'",,48)

For Each objEvent in colLoggedEvents
With objEvent
reponse=reponse&_
"Category: "&.Category&VbNewLine&_
"Computer Name: "&.ComputerName&VbNewLine&_
"Event Code: "&.EventCode&VbNewLine&_
"Message: "&.Message&VbNewLine&_
"Record Number: "&.RecordNumber&VbNewLine&_
"Source Name: "&.SourceName&VbNewLine&_
"Time Written: "&.TimeWritten&VbNewLine&_
"Event Type: "&.Type&VbNewLine&_
"User: "&.User&VbNewLine&VbNewLine
Exit For
End With
Next
MsgBox reponse
'---8<---


Amicalement,

Jean - JMST
Belgium

"sgroulx" <s_groulx(bidon)@videotron.ca> a écrit dans le message de news: uc9Z25$

"Jean" <http:// a écrit dans le message de
news:OVq03u%
Bonjour,

Mettez un Sleep dans votre boucle :

For Each bla bla bla In bla bla ba
WScript.Sleep 10
bla bla bla
Next


avec cela ca va pas seulement ralonger la duré execution de winmgmt.exe?
car je veux selement quil me fase un msgbox de la premiere evenement. pas
qui lisent les 10000 autre.
Sébas


Amicalement,

Jean - JMST
Belgium

"sgroulx" <s_groulx(bidon)@videotron.ca> a écrit dans le message de news:



"Jacques Barathon [MS]" a écrit dans le
message de news:
Voici un exemple tiré du Script Center de Microsoft
(http://www.microsoft.com/technet/scriptcenter/default.mspx):

--- couper ici ---
strComputer = "."Set objWMIService = GetObject("winmgmts:" _ &
"{impersonationLevel=impersonate}!" & strComputer & "rootcimv2")Set
colLoggedEvents = objWMIService.ExecQuery _ ("Select * from
Win32_NTLogEvent Where Logfile = 'System' and " _ &
"EventCode



'6008'")Wscript.Echo "Improper shutdowns: " & colLoggedEvents.Count---
couper ici ---




A mettre dans vos favoris ou mieux encore, télécharger l'ensemble des
scripts regroupés dans un fichier au format CHM (aide HTML).

Jacques



bonjour,
voila mon nouveau code.

strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!" & strComputer &
"rootcimv2")


Set colLoggedEvents = objWMIService.ExecQuery _
("Select * from Win32_NTLogEvent Where Logfile = 'System'")

For Each objEvent in colLoggedEvents
reponce = "Category: " & objEvent.Category
reponce = reponce & vbcrlf& "Computer Name: " & objEvent.ComputerName
reponce = reponce & vbcrlf& "Event Code: " & objEvent.EventCode
reponce = reponce & vbcrlf& "Message: " & objEvent.Message
reponce = reponce & vbcrlf& "Record Number: " & objEvent.RecordNumber
reponce = reponce & vbcrlf& "Source Name: " & objEvent.SourceName
reponce = reponce & vbcrlf& "Time Written: " & objEvent.TimeWritten
reponce = reponce & vbcrlf& "Event Type: " & objEvent.Type
reponce = reponce & vbcrlf& "User: " & objEvent.User
MsgBox reponce
WScript.Quit 'test pour 1 evenement
Next

mais le problème c'est que le proces winmgmt grimpe a 100%. le seul
moyen


que j'ai trouver pour le faire redescendre a été effacé le log dans
event


viewer.
comme si la requête ne se serais pas ferme suit a wscript.quit
ai-je un moyen de le stop après en avoir terminé?
mais j'aurai jamais besoin de plus que les 15 premier évènement
Merci.
Sébas