Utilisation de la bibliothèque de types de scripts WMI

Vous pouvez utiliser la bibliothèque de types de scripts WMI pour appeler des méthodes d’API de script WMI à partir de Microsoft Visual Studio et dans les fichiers WSF de l’hôte de script Windows.

Utilisation de la bibliothèque de types de scripts WMI avec Microsoft Visual Studio

Notes

Les fonctionnalités de Visual InterDev 6.0 ont été intégrées à Microsoft Visual Studio .NET.

 

La procédure suivante décrit comment permettre à l’environnement de développement intégré (IDE) de connaître la bibliothèque de types WbemScripting.

Pour ajouter la bibliothèque de types WMI Scripting aux références de projet

  1. Sélectionnez Ajouter des références dans le menu Projet.

  2. Sous l’onglet COM de la zone Ajouter une référence, sélectionnez Bibliothèque Microsoft WMI Scripting V1.2.

  3. Si aucune option appropriée n’apparaît dans la liste Références, ajoutez-la à l’aide de Parcourir dans la zone Références . Parcourir ouvre une zone Ajouter une référence qui vous permet de localiser la bibliothèque de types WbemScripting.

    La bibliothèque de types WbemScripting réside dans le fichier Wbemdisp.tlb du répertoire %windir%\System32\Wbem.

  4. Sélectionnez le fichier et cliquez sur Ouvrir. La bibliothèque Microsoft WMI Scripting V1.2 apparaît dans la liste des références. Veillez à sélectionner la case en regard de cet élément dans la liste.

Utilisation de la bibliothèque de types de scripts WMI avec Windows Script Host 2.0

Vous pouvez inclure la référence à WbemScripting.SWbemLocator dans un fichier WSF hôte de script Windows, contrairement à un script écrit en Visual Basic, Scripting Edition ou d’autres langages de script. Cela vous permet d’utiliser des noms de constantes au lieu de valeurs. Par exemple, utilisez WbemAuthenticationLevelPktPrivacy plutôt que la valeur 6 lors de la définition de l’authentification.

Les scripts peuvent se connecter à la bibliothèque de types d’API de script pour WMI à l’aide des méthodes suivantes :

  • Spécification du GUID WbemScripting dans les méthodes VBScript CreateObject et GetObject.

    Cela avertit l’hôte de script Windows de se connecter à l’ensemble d’objets WMI.

    L’exemple de code VBScript suivant crée un objet SWbemDateTime.

    Set dateTime = CreateObject("WbemScripting.SWbemDateTime")
    
  • Utilisation de la chaîne Moniker « winmgmts: » lors de l’obtention d’un objet nouveau ou existant.

    L’exemple de code VBScript suivant utilise le moniker « winmgmts: » pour obtenir l’instance de Win32_Process avec une propriété Handle de 0 (zéro). Handle est la propriété de clé pour cette classe.

    Set Process = GetObject("winmgmts:Win32_Process.Handle=0")
    
  • Référencement de la bibliothèque de types WMI à l’aide de la balise de <référence> du format de fichier XML WSH 2.0. Si vous utilisez la balise de <référence>, la balise doit avoir un attribut uuid dont la valeur est le GUID de la bibliothèque de types WMI, ou (recommandé) un attribut d’objet dont la valeur est la PROGID de l’un des objets de script WMI que vous pouvez créer.

    L’exemple de code VBScript suivant utilise le PROGID de « WbemScripting ». Pour exécuter le script, enregistrez le texte dans un fichier avec une extension .wsf.

    <?xml version="1.0" encoding="US-ASCII"?>
    <job>
    <reference object="WbemScripting.SWbemLocator"/>
    <script language="VBScript">
        set service = GetObject("winmgmts:")
        ' Following line uses a symbolic 
        ' constant from the WMI type library
        service.Security_.impersonationLevel = _
            wbemImpersonationLevelDelegate
    </script>
    </job>
    
  • Utilisation d’une balise <d’objet> pour créer un objet de script WMI. Vous pouvez spécifier l’attribut id avec la valeur d’un nom qui fait référence à l’objet de script WMI que vous souhaitez créer, et l’attribut progid égal au PROID de l’objet de script WMI.

    Le script WSH suivant affiche le nom d’hôte et le nombre de processeurs sur l’ordinateur local. Pour exécuter le script, enregistrez le texte dans un fichier avec une extension .wsf.

    <?xml version="1.0" encoding="US-ASCII"?>
    <job>
     <object id="objSWbemLocator" progid="WbemScripting.SWbemLocator"/>
     <script language="VBScript">
    
      strComputer = "."
      Set objSWbemServices = objSWbemLocator.ConnectServer(strComputer, "root\cimv2")
      Set colSettings = objSWbemServices.ExecQuery("Select * From Win32_ComputerSystem")
      For Each objComputer in colSettings
       Wscript.Echo "System Name: " & objComputer.Name
       Wscript.Echo "Number of Processors: " & objComputer.NumberOfProcessors
      Next
    
     </script>
    </job>
    

Écriture de script dans WMI

API de script pour WMI