IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VBScript Discussion :

Récupération des journaux d'évènement en VBS


Sujet :

VBScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Février 2014
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2014
    Messages : 35
    Par défaut Récupération des journaux d'évènement en VBS
    Bonjour,

    J'aimerais récupérer les journaux d'évènements (System, Application, Security) en VBScript et sous Windows XP mais je n'y parviens pas.

    Pour cela j'utilise le code suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Set objFso   = Createobject("Scripting.FileSystemObject")
    Set objWMIService = GetObject("winMgmts:{impersonationLevel=impersonate}!\\.\root\CIMV2")
    Set colLoggedEvents = objWMIService.ExecQuery("SELECT * FROM Win32_NTEventLogFile WHERE LogfileName = 'System' OR LogfileName = 'Application' OR LogfileName = 'Security'")
     
    For Each objEvent in colLoggedEvents
      ret = 1
      If  objEvent.LogfileName = "System"      Or _
          objEvent.LogfileName = "Application" Or _
          objEvent.LogfileName = "Security"    Then
        MsgBox objEvent.LogfileName
        ret = objEvent.BackupEventLog(objFso.BuildPath("C:\", objEvent.FileName & "."  & objEvent.extension))
      End If
    Next
    Je suis connecté avec un compte administrateur et j'obtiens le message d'erreur : "Access denied".
    Nom : err.JPG
Affichages : 267
Taille : 11,8 Ko

    J'ai quand même la ligne avec MsgBox qui est exécuté, mais mon script plante tout de suite après sur l'appel de la fonction BackupEventLog.

    Pourtant, ce morceau de code fonctionne très bien sur une machine Windows 10 quand je lance en l'exécutant avec les droits administrateurs.

    Je ne sais pas vraiment ou chercher pour résoudre ce problème, d'autant plus que j'ai testé ce script sur plusieurs machines XP.

    Auriez-vous des idées/pistes pour investiguer/résoudre ce problème ?

  2. #2
    Modérateur
    Avatar de l_autodidacte
    Homme Profil pro
    Retraité : Directeur de lycée/Professeur de sciences physiques
    Inscrit en
    Juillet 2009
    Messages
    2 420
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Retraité : Directeur de lycée/Professeur de sciences physiques
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2009
    Messages : 2 420
    Par défaut
    Le problème vient du fait qu'à partir d'une certaine version de Windows(je ne me rappelle plus laquelle), la création d'un fichier à la racine du lecteur système n'est pas disponible.
    Dans ce cas, on passe par un dossier où on placerait les fichiers voulus ou on choisira de les placer sur un autre lecteur; par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Set objFso   = Createobject("Scripting.FileSystemObject")
    Set objWMIService = GetObject("winMgmts:{impersonationLevel=impersonate}!\\.\root\CIMV2")
    Set colLoggedEvents = objWMIService.ExecQuery("SELECT * FROM Win32_NTEventLogFile WHERE LogfileName = 'System' OR LogfileName = 'Application' OR LogfileName = 'Security'")
    Set D = objFso.CreateFolder("C:\Logs") ' Création du dossier cible
    For Each objEvent in colLoggedEvents
      ret = 1
      If  objEvent.LogfileName = "System"      Or _
          objEvent.LogfileName = "Application" Or _
          objEvent.LogfileName = "Security"    Then
        MsgBox objEvent.LogfileName
        ret = objEvent.BackupEventLog(objFso.BuildPath(D.path, objEvent.FileName & "."  & objEvent.extension))
      End If
    Next
    Ne pas oublier le tag si satisfait.
    Voter pour toute réponse satisfaisante avec pour encourager les intervenants.
    Balises CODE indispensables. Regardez ICI
    Toujours utiliser la clause Option Explicit(VBx, VBS ou VBA) et Ne jamais typer variables et/ou fonctions en VBS.
    Vous pouvez consulter mes contributions
    Ne pas oublier de consulter les différentes FAQs et les Cours/Tutoriels VB6/VBScript
    Ne pas oublier L'Aide VBScript et MSDN VB6 Fr

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Archivage des journaux d'événements
    Par willamar dans le forum Scripts/Batch
    Réponses: 0
    Dernier message: 20/09/2013, 15h18
  2. [VBS] Requete WMI pour récupération des adr. DNS
    Par fredsg dans le forum VBScript
    Réponses: 1
    Dernier message: 07/08/2009, 12h03
  3. Réponses: 0
    Dernier message: 20/11/2007, 09h46
  4. Réponses: 2
    Dernier message: 21/09/2007, 11h37
  5. aide pour la gestion des journaux d'évènements
    Par to_toy dans le forum Windows Serveur
    Réponses: 1
    Dernier message: 22/02/2007, 14h20

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo