begin process at 2012 02 12 17:40:57
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

VBScript

 > EVENTVIEWER - NTLOGEVENT - EXTRACTION INFORMATIONS DU JOURNAL D'OBSERVATION DES EVÉNEMENTS WINDOWS

EVENTVIEWER - NTLOGEVENT - EXTRACTION INFORMATIONS DU JOURNAL D'OBSERVATION DES EVÉNEMENTS WINDOWS


 Information sur la source

Note :
Aucune note
Catégorie :VBScript Classé sous :vbs, wmi, ntlogevent, eventwiever Niveau :Débutant Date de création :26/11/2006 Date de mise à jour :28/11/2006 12:42:02 Vu :10 696

Auteur : JMO

Ecrire un message privé
Commentaire sur cette source (1)
Ajouter un commentaire et/ou une note

 Description

Ce script testé, sous xp, permet d'extraire les informations du Journal d'événements de Windows,
à partir du fichier "Win32_NTLogEvent".

Dans cet exemple , les informations recueillies sont formatées dans un .txt

Source

  • 'Lecture des enregistrements des journaux d'événements de Windows
  • 'Source originale : Cedric NANA, LABORATOIRE SUPINFO DES TECHNOLOGIES MICROSOFT (Equipe Recherche)
  • 'Publiée le 11/05/2005 http://www.laboratoire-microsoft.org/scripts/14221/
  • 'Descriptif de Win32_NTLogEvent
  • 'http://www.secretswindows.com/index.php?rubrique=scripts&ssrubrique=WMI&page=./scripts/wmi/win32ntlogevent.htm
  • '
  • 'Selection sur LogFile="Application" ou "System", Type="erreur" et TimeGenerated <= à 15h
  • '
  • On Error Resume Next
  • 'Création fichier resultat
  • Dim resultat : resultat = "D:\Observateur_événements_" & Replace(Date, "/","-") & ".txt"
  • Dim Fso : Set Fso = CreateObject("Scripting.fileSystemObject")
  • Dim Rapport : Set Rapport = Fso.openTextFile(resultat, 2, True)
  • Dim strComputer, objWMIServices, objWMIObjectSet, objWMIObject
  • strComputer = "."
  • Set objWMIServices = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
  • Set objWMIObjectSet = objWMIServices.ExecQuery _
  • ("Select * from Win32_NTLogEvent Where (LogFile='Application' Or LogFile='system') And Type='erreur'")
  • For Each objWMIObject In objWMIObjectSet
  • Dim MyComputer : MyComputer = objWMIObject.ComputerName
  • If DateDiff("d", clair(objWMIObject.TimeGenerated), Now) <= 20 Then
  • Rapport.writeLine "----------------------------------------------------"
  • Rapport.writeLine "Ordinateur: " & objWMIObject.ComputerName
  • Rapport.writeLine "Observateur d'événements: " & objWMIObject.LogFile
  • Rapport.writeLine "----------------------------------------------------"
  • Rapport.writeLine "Type: " & UCase(Left(objWMIObject.Type,1)) & mid(objWMIObject.Type,2)
  • Rapport.writeLine "Date: " & clair(objWMIObject.TimeGenerated)
  • Rapport.writeLine "Source: " & objWMIObject.SourceName
  • Rapport.writeLine "ID évén.: " & objWMIObject.EventCode
  • Rapport.writeLine "Utilisateur: " & objWMIObject.User
  • Rapport.writeLine "Numéro d'enregistrement: " & objWMIObject.RecordNumber
  • If Len(objWMIObject.Message) > 56 Then
  • Rapport.writeLine "Description: " &vbCrLf& Cesure(objWMIObject.Message, 56)
  • Else
  • Rapport.writeLine "Description: " &vbCrLf& objWMIObject.Message
  • End If
  • End If
  • Next
  • Rapport.Close
  • Set Rapport = Nothing
  • Set fso = Nothing : Set Rapport = Nothing
  • Set objWMIObjectSet = Nothing : Set objWMIServices = Nothing
  • Dim WshShell : Set WshShell = CreateObject("WScript.Shell")
  • WshShell.Run resultat
  • Set WshShell = Nothing
  • 'Envoi automatisé du mail
  • 'Call EnvoiMail(resultat, MyComputer, Contenu)
  • WScript.Quit
  • Function clair(temps)
  • 'tranformation de la date "aaaammjjhhmnss" en jj/mm/aaaa hh:mn
  • Dim debut, an, mois, jour, hhmn
  • debut = left(temps,8)
  • an = left(debut,4)
  • mois = mid(debut,5,2)
  • jour = right(debut,2)
  • hhmn = " " & Mid(temps,9,2) & ":" & Mid(temps,11,2)
  • clair = CStr(jour) & "/" & CStr(mois) & "/" & CStr(an) & CStr(hhmn)
  • 'MsgBox temps &vbCrLf& clair
  • End function
  • Function Cesure(texte,taillecesure)
  • 'Cette function Cesure est à améliorer
  • Dim posespace
  • Dim textimp
  • While (Len(texte) > taillecesure)
  • 'Vérifier si la césure ne se fait pas juste avant l'espace (apres un mot entier) :
  • If Mid(texte, taillecesure + 1, 1) = " " Then
  • 'si c'est le cas , ne pas chercher d'espace
  • posespace = taillecesure
  • Else
  • 'sinon, chercher un espace avant le mot en cours
  • posespace = InStrRev(Left(texte, taillecesure), " ") - 1
  • End If
  • 'ajouter le texte tronqué à la sortie de la fonction
  • textimp = textimp & Left(texte, posespace) & vbCrLf
  • 'tronquer le texte et recommencer la boucle
  • texte = Mid(Trim(texte), posespace + 2)
  • Wend
  • 'ajouter le restant du texte
  • textimp = textimp & texte
  • 'retourner le resultat de la fonction
  • Cesure = textimp
  • End Function
'Lecture des enregistrements des journaux d'événements de Windows
'Source originale : Cedric NANA, LABORATOIRE SUPINFO DES TECHNOLOGIES MICROSOFT (Equipe Recherche)
'Publiée le 11/05/2005 http://www.laboratoire-microsoft.org/scripts/14221/
'Descriptif de Win32_NTLogEvent
'http://www.secretswindows.com/index.php?rubrique=scripts&ssrubrique=WMI&page=./scripts/wmi/win32ntlogevent.htm
'
'Selection sur LogFile="Application" ou "System", Type="erreur" et TimeGenerated <= à 15h
'
On Error Resume Next 
'Création fichier resultat 
Dim resultat : resultat =  "D:\Observateur_événements_" & Replace(Date, "/","-") & ".txt"

Dim Fso      : Set Fso = CreateObject("Scripting.fileSystemObject") 
Dim Rapport  : Set Rapport = Fso.openTextFile(resultat, 2, True) 

Dim strComputer, objWMIServices, objWMIObjectSet, objWMIObject    
strComputer = "." 
Set objWMIServices  = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2") 
Set objWMIObjectSet = objWMIServices.ExecQuery _ 
   ("Select * from Win32_NTLogEvent Where (LogFile='Application' Or LogFile='system') And Type='erreur'") 
For Each objWMIObject In objWMIObjectSet
Dim MyComputer : MyComputer = objWMIObject.ComputerName 
       
If DateDiff("d", clair(objWMIObject.TimeGenerated), Now) <= 20 Then 
   Rapport.writeLine "----------------------------------------------------"     
   Rapport.writeLine "Ordinateur: "               & objWMIObject.ComputerName   
   Rapport.writeLine "Observateur d'événements: " & objWMIObject.LogFile 
   Rapport.writeLine "----------------------------------------------------" 
   Rapport.writeLine "Type: "                     & UCase(Left(objWMIObject.Type,1)) & mid(objWMIObject.Type,2) 
   Rapport.writeLine "Date: "                     & clair(objWMIObject.TimeGenerated) 
   Rapport.writeLine "Source: "                   & objWMIObject.SourceName 
   Rapport.writeLine "ID évén.: "                 & objWMIObject.EventCode  
   Rapport.writeLine "Utilisateur: "              & objWMIObject.User  
   Rapport.writeLine "Numéro d'enregistrement: "  & objWMIObject.RecordNumber 

   If Len(objWMIObject.Message) > 56 Then
      Rapport.writeLine "Description: " &vbCrLf& Cesure(objWMIObject.Message, 56) 
      Else
      Rapport.writeLine "Description: " &vbCrLf& objWMIObject.Message    
   End If

End If
Next
Rapport.Close
Set Rapport = Nothing
Set fso = Nothing : Set Rapport = Nothing
Set objWMIObjectSet = Nothing : Set objWMIServices  = Nothing

Dim WshShell : Set WshShell = CreateObject("WScript.Shell")
WshShell.Run resultat
Set WshShell = Nothing

'Envoi automatisé du mail
'Call EnvoiMail(resultat, MyComputer, Contenu)
WScript.Quit

Function clair(temps)
'tranformation de la date "aaaammjjhhmnss" en jj/mm/aaaa hh:mn
Dim debut, an, mois, jour, hhmn
	debut = left(temps,8)
	an = left(debut,4)
	mois = mid(debut,5,2)
	jour = right(debut,2)
	hhmn = " " & Mid(temps,9,2) & ":" & Mid(temps,11,2)
	clair = CStr(jour) & "/" & CStr(mois) & "/" & CStr(an) & CStr(hhmn)
	'MsgBox temps &vbCrLf& clair
End function

Function Cesure(texte,taillecesure) 
'Cette function Cesure est à améliorer
Dim posespace 
Dim textimp 
    
    While (Len(texte) > taillecesure) 
        'Vérifier si la césure ne se fait pas juste avant l'espace (apres un mot entier) : 
        If Mid(texte, taillecesure + 1, 1) = " " Then 
            'si c'est le cas , ne pas chercher d'espace 
            posespace = taillecesure 
        Else 
            'sinon, chercher un espace avant le mot en cours 
            posespace = InStrRev(Left(texte, taillecesure), " ") - 1 
        End If 
        'ajouter le texte tronqué à la sortie de la fonction 
        textimp = textimp & Left(texte, posespace) & vbCrLf   
        'tronquer le texte et recommencer la boucle 
        texte = Mid(Trim(texte), posespace + 2) 
     
    Wend 
    'ajouter le restant du texte 
    textimp = textimp & texte 
    'retourner le resultat de la fonction 
    Cesure = textimp 
End Function

 Conclusion

En cours d'écriture:
-
- résultat dans un fichier html pour pièce jointe de mail;
- résultat dans un fichier xls pour pièce jointe de mail;
- afficher le résultat .txt dans le corps du mail;
- afficher le résultat .htm dans le corps du mail;

La Query ne demande qu'à être développée.

jean-marc


 Historique

28 novembre 2006 12:42:02 :
Correction de la Quéry (bug sur certains xp) Ajout d'une function Césure pour la description des messages (à améliorer) Ce script, en vbs, ne necéssite aucune install de composant.

 Sources du même auteur

GESTION DES HEURES DE NUIT (22H-0H) - CALCUL DE DATES
INVENTAIRE FICHIERS SUR SERVER DISTANT OU LOCAL
[VBSCRIPT] LISTE DES FICHIERS, D'UN RÉPERTOIRE, TRIÉS PAR DA...
[VBSCRIPT] RECHERCHE D'UN CARACTÈRE OU D'UNE CHAINE DE CARAC...
Source avec Zip EXEMPLES DE PROCÉDURES VBSCRIPT

 Sources de la même categorie

Source avec Zip Source avec une capture RECHERCHE & SAUVEGARDE DES FICHIERS PAR LEURS EXTENSIONS par hackoo
Source avec Zip Source avec une capture [VBS] SPLASH SCREEN EN VBSCRIPT par hackoo
Source avec Zip Source avec une capture [VBS] GOOGLE EASTER EGGS par hackoo
Source avec Zip Source avec une capture FILE2COMPARE: COMPARAISON DE DEUX FICHIERS LIGNE PAR LIGNE par hackoo
Source avec Zip Source avec une capture [VBS] COMMENT CRÉER UN DOSSIER ET LE PROTÉGER PAR MOT DE PAS... par hackoo

 Sources en rapport avec celle ci

Source avec Zip RECHERCHER TOUS LES FICHIERS DONT L'EXTENSION EST *.VBS ET L... par hackoo
Source avec Zip Source .NET (Dotnet) CLASSE POUR CONNECTER/DÉCONNECTER UN LECTEUR RÉSEAU par radcur
Source avec Zip Source avec une capture Source .NET (Dotnet) COMMENT CONTRÔLER TOTALEMENT LES PROCESSUS D'UN PC DISTANT (... par violent_ken
Source avec Zip INFOS WMI DES DISQUES DURS (LIEN LECTEUR LOGIQUE / LECTEUR P... par Renfield
INVENTAIRE FICHIERS SUR SERVER DISTANT OU LOCAL par JMO

Commentaires et avis

Commentaire de pit1 le 27/11/2006 21:48:04

Jean-Marc,

- cela ne marche pas chez moi. Faut-il mettre des références particulières?
- Attention certaines variables ne sont pas typées!
- Cela permet-il aussi de lire des ordinateurs distants?
- ce serait sympa de mettre le projet entier ...

Bonne continuation!

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

VBS et WMI [ par TheEwook ] Bonjour, Voilà j'arrive bien à ajouter une passerelle en WMI sur une interface. Par contre le seule problème que j'ai c'est que je n'arrive pas à l'en VBS, WMI & groupes locaux [ par rodrigos ] Salut!Je suis en train de me mettre au vbscript et j'aimerai savoir comment on peut obtenir l'ensemble des utilisateurs d'un groupe local: par exemple soucis entre des API WMI HTML et VBS [ par barba ] Quel beau melange!Cela necessite une petite explication.mon probleme: j'ai une page html qui execute un code vbs (il cree un repertoire, copie 4 fichi [VBS] wmi user courant [ par remifalcon ] BonjourJe cherche désespérément la librairie wmi que me donnerait l'utilisateur (local ou non) en cours de session d'une machineJ'ai essayé caSet objs VBS fichier texte et WMI [ par jojo42000 ] Salut tous le monde, Je suis debutant et j'ai tres peu de notion de prog. Je dispose d'un fichier ordi.txt sous c:\ Ce fichier contient une liste de n Liste des logiciels installés (par VBS) [ par glad ] Bonjour, Je suis un peu perplexe[^^sad2], je viens de m'apercevoir que certains logiciels ne "remontaient" pas ds WMI via le script suivant : [code= Lecteur réseau via script VBS sous une session Citrix [ par reeves77185 ] Bonjour, Je suis actuellement en charge d'un projet au sein de ma société qui me fait faire un peu de VBS malgré que ce soit pas mon taff mais alors VBS Déplacer la souri [ par Hamptonash ] Bonjour à tous, Ce forum est décidement le meilleur!! Voilà mon problème, je voudrais savoir si quelqu'un connait une fonctions en VBS je précise!! Suppression d'un VBS après exécution [ par mat76 ] Bonjour , Je me permet de vous solliciter après moult recherches infructueuses. Voici ma problématique: Sur des postes Vista, la remontée de l'impr Changement clé Office 2010 [ par stephane031 ] Bonjour, Je me tourne vers vous car je souhaiterai faire un script qui me permette de modifier et d'activer une clé Office 2010. Sur un master, nous


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,967 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales