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 :

Créer une fonction WMI avec appels de différentes classes


Sujet :

VBScript

  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    240
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2008
    Messages : 240
    Points : 247
    Points
    247
    Par défaut Créer une fonction WMI avec appels de différentes classes
    Bonjour à tous,

    je souhaiterai créer une fonction wmiquery qui appelle n'importe quelles informations que je souhaiterai.

    Je souhaiterai les informations suivantes par exemple :

    Message, EventType, TimeGenerated.

    mais il se peut que je veuille d'autres informations par nécessairement les mêmes :

    EventCode, Message, SourceName....


    Je pensai à faire une fonction qui me permettrait de lire ce que je souhaite mais je n'y parviens pas. Mettre les informations en paramètres en quelques sortes.
    Je n'ai jamais réalisé de fonction et j'ai toujours utilisé une version standard WMI mais ça devient vite long et laborieux.

    FUNCTION WMIQUERY(Property1, Property2,Property3)
    .....
    END FUNCTION

    J'ai lu que je devais utilisé Array() mais je ne parviens pas à faire afficher l'information ni à créer la fonction.

    Pourriez vous m'aider ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    strComputer = "."
     
     
    arrProperty = Array("Message","TimeGenerated","EventType")
     
    For Each strProperty In arrProperty
    Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\CIMV2")
    Set colItems = objWMIService.ExecQuery("SELECT * FROM Win32_NTLogEvent ",,48)
     
     
     
    Wscript.Echo objItem.strProperty
     
     
    Next
    Code de base :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    strComputer = "." 
    Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\CIMV2") 
    Set colItems = objWMIService.ExecQuery( _
        "SELECT * FROM Win32_NTLogEvent",,48) 
    For Each objItem in colItems 
        Wscript.Echo "EventType: " & objItem.EventType
        Wscript.Echo "Message: " & objItem.Message
        Wscript.Echo "TimeGenerated: " & objItem.TimeGenerated
    Next
    Merci d'avance aux membres qui prendront le temps de m'expliquer.

    Bonne journée
    Acris

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    948
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 948
    Points : 1 111
    Points
    1 111
    Par défaut
    Tu peux essayer quelque chose comme ca :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
     
    'ici je définis l'ordinateur ainsi que la liste des éléments que je souhaite obtenir
    strComputer = "." 
    Dim monArgument(2)
    monArgument(0) = "EventType"
    monArgument(1) = "TimeGenerated"
     
    'je lance ma fonction de récupération des éléments
    Call RecupereWMI(strComputer,monArgument)
     
    'fonction de récupération des éléments
    Sub RecupereWMI(Computer,Argument)
     
       'récupération de toutes les données
       Set objWMIService = GetObject("winmgmts:\\" & Computer & "\root\CIMV2") 
       Set colItems = objWMIService.ExecQuery("SELECT * FROM Win32_NTLogEvent",,48)
     
       'traitement des données en sortie
       For Each objItem in colItems 
     
          'si EventType fait partie des arguments, il est affiché.
          if contains(Argument,"EventType") = 1 then
              Wscript.Echo "EventType: " & objItem.EventType
          end if
     
           if contains(Argument,"Message") = 1 then
               Wscript.Echo "Message: " & objItem.Message
           end if
     
           if contains(Argument, "TimeGenerated") = 1 then
              Wscript.Echo "TimeGenerated: " & objItem.TimeGenerated
            end if
     
       Next
     
    End Sub
     
    'fonction qui teste si un element fait partie d'un array
    Function contains(Array,Element)
     
    For each ArrayElement in Array
    if ArrayElement = Element then
     contains = 1
     Exit function
    end if
    Next
    contains = 0
     
    end function

  3. #3
    Membre actif
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    240
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2008
    Messages : 240
    Points : 247
    Points
    247
    Par défaut
    Merci beaucoup Flamby38
    ça correspond à ce que je cherche à faire.

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Février 2008
    Messages
    252
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Février 2008
    Messages : 252
    Points : 124
    Points
    124
    Par défaut
    Citation Envoyé par Acris Voir le message
    Bonjour à tous,

    Je n'ai jamais réalisé de fonction et j'ai toujours utilisé une version standard WMI mais ça devient vite long et laborieux.

    Acris
    En effet ^^

    Merci Flamby82 pour l'exemple ca va me servir également !

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

Discussions similaires

  1. Créer une fonction pouvant renvoyer 2 types différents
    Par Simara1170 dans le forum Langage
    Réponses: 4
    Dernier message: 16/06/2014, 15h42
  2. Créer une fonction SQL avec variable
    Par theuma dans le forum Access
    Réponses: 6
    Dernier message: 18/04/2011, 13h02
  3. Réponses: 11
    Dernier message: 20/11/2010, 14h08
  4. créer une fonction avec parametre optionnel
    Par maximenet dans le forum Langage
    Réponses: 2
    Dernier message: 29/01/2006, 21h51
  5. Réponses: 6
    Dernier message: 10/08/2005, 12h36

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