Verwenden der WMI-Skriptingtypbibliothek

Sie können die WMI-Skriptingtypbibliothek verwenden, um WMI-Skripting-API-Methoden aus Microsoft Visual Studio und in Windows Script Host-WSF-Dateien aufzurufen.

Verwenden der WMI-Skriptingtypbibliothek mit Microsoft Visual Studio

Hinweis

Visual InterDev 6.0-Features wurden in Microsoft Visual Studio .NET integriert.

 

Im folgenden Verfahren wird beschrieben, wie die integrierte Entwicklungsumgebung (IDE) zur Erkennung der Typbibliothek „WbemScripting“ aktiviert wird.

So fügen Sie die WMI-Skriptingtypbibliothek zu den Projektverweisen hinzu

  1. Wählen Sie im Menü Projekt den Befehl Verweis hinzufügen aus.

  2. Wählen Sie auf der COM-Registerkarte des Felds Verweis hinzufügen die Option „Microsoft WMI Scripting V1.2 Library“ aus.

  3. Wenn in der Liste „Verweise“ keine geeignete Option angezeigt wird, fügen Sie sie mithilfe von Durchsuchen im Feld Verweise hinzu. Über das Feld Durchsuchen wird ein Feld Verweis hinzufügen geöffnet, mit dem Sie die Typbibliothek „WbemScripting“ suchen können.

    Die Typbibliothek „WbemScripting“ befindet sich in der Datei „Wbemdisp.tlb“ im Verzeichnis „%windir%\System32\Wbem“.

  4. Wählen Sie die Datei aus, und klicken Sie auf Öffnen. „Microsoft WMI Scripting V1.2 Library“ wird in der Verweisliste angezeigt. Stellen Sie sicher, dass das Kontrollkästchen neben diesem Element in der Liste ausgewählt ist.

Verwenden der WMI-Skriptingtypbibliothek mit Windows Script Host 2.0

Im Gegensatz zu einem Skript, das in Visual Basic, Scripting Edition oder anderen Skriptsprachen geschrieben wurde, können Sie den Verweis auf WbemScripting.SWbemLocator in eine WSF-Datei von Windows Script Host einschließen. Dadurch können Sie Konstantennamen anstelle von Werten verwenden. Verwenden Sie beim Festlegen der Authentifizierung beispielsweise WbemAuthenticationLevelPktPrivacy anstelle des Werts „6“.

Skripts können mithilfe der folgenden Methoden eine Verbindung mit der Typbibliothek der Skripting-API für WMI herstellen:

  • Angeben der WbemScripting-GUID in den VBScript-Methoden CreateObject und GetObject.

    Dadurch wird Windows Script Host benachrichtigt, eine Verbindung mit dem WMI-Objektsatz herzustellen.

    Im folgenden VBScript-Codebeispiel wird ein neues SWbemDateTime-Objekt erstellt.

    Set dateTime = CreateObject("WbemScripting.SWbemDateTime")
    
  • Verwenden der Moniker-Zeichenfolge „winmgmts:“ beim Abrufen eines neuen oder vorhandenen Objekts.

    Im folgenden VBScript-Codebeispiel wird der „winmgmts:“-Moniker verwendet, um die Instanz von Win32_Process abzurufen, dessen Handle-Eigenschaft den Wert „0“ (null) aufweist. Handle ist die Schlüsseleigenschaft für diese Klasse.

    Set Process = GetObject("winmgmts:Win32_Process.Handle=0")
    
  • Verweisen auf die WMI-Typbibliothek mithilfe des <reference>-Tags des WSH 2.0-XML-Dateiformats. Wenn Sie das <reference>-Tag verwenden, muss das Tag entweder über ein uuid-Attribut, dessen Wert die GUID der WMI-Typbibliothek ist, oder (empfohlen) über ein Objektattribute, dessen Wert die PROGID eines der WMI-Skriptobjekte ist, die Sie erstellen können, verfügen.

    Im folgenden VBScript-Codebeispiel wird die PROGID von „WbemScripting“ verwendet. Um das Skript auszuführen, speichern Sie den Text in einer Datei mit der Erweiterung 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>
    
  • Verwenden eines <object>-Tags zum Erstellen eines WMI-Skriptobjekts. Sie können das id-Attribut mit dem Wert eines Namens angeben, der auf das zu erstellende WMI-Skriptobjekt verweist, und das progid-Attribut, das der PROID des WMI-Skriptobjekts entspricht.

    Das folgende WSH-Skript zeigt den Hostnamen und die Anzahl der Prozessoren auf dem lokalen Computer an. Um das Skript auszuführen, speichern Sie den Text in einer Datei mit der Erweiterung 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>
    

Skripterstellung in WMI

Skripting-API für WMI