Udostępnij za pośrednictwem


Korzystanie z biblioteki typów skryptów usługi WMI

Można używać biblioteki typów skryptów WMI do wywoływania metod WMI Scripting API w programie Microsoft Visual Studio oraz w plikach WSF Windows Script Host.

Korzystanie z biblioteki typów skryptów usługi WMI w programie Microsoft Visual Studio

Notatka

Funkcje programu Visual InterDev 6.0 zostały zintegrowane z programem Microsoft Visual Studio .NET.

 

W poniższej procedurze opisano, jak włączyć zintegrowane środowisko programistyczne (IDE), aby było świadome biblioteki typów WbemScripting.

Aby dodać bibliotekę typów skryptów WMI do odniesień w projekcie

  1. Wybierz pozycję Dodaj odwołania z menu projektu.

  2. Na karcie COM okna Dodaj odwołanie wybierz pozycję Biblioteka Microsoft WMI Scripting V1.2.

  3. Jeśli na liście Odwołania nie jest wyświetlana żadna odpowiednia opcja, dodaj ją, korzystając z Przeglądaj w polu Odwołania. Przeglądaj otwiera okno Dodaj odwołanie, które umożliwia zlokalizowanie biblioteki typów WbemScripting.

    Biblioteka typów WbemScripting znajduje się w pliku Wbemdisp.tlb w katalogu %windir%\System32\Wbem.

  4. Wybierz plik i kliknij Otwórz. Biblioteka Microsoft WMI Scripting V1.2 jest wyświetlana na liście odwołań. Upewnij się, że zaznaczono pole obok tego elementu na liście.

Używanie biblioteki typów skryptów usługi WMI z hostem skryptów systemu Windows 2.0

Możesz dołączyć odwołanie do WbemScripting.SWbemLocator w pliku WSF hosta skryptów systemu Windows, w przeciwieństwie do skryptu napisanego w języku Visual Basic, Scripting Edition lub innych językach skryptów. Dzięki temu można używać stałych nazw zamiast wartości. Na przykład użyj WbemAuthenticationLevelPrivacy, a nie wartości 6 podczas ustawiania uwierzytelniania.

Skrypty mogą łączyć się z interfejsem API skryptów dla biblioteki typów WMI przy użyciu następujących metod:

  • Określanie identyfikatora GUID WbemScripting w metodach VBScript CreateObject i GetObject.

    To powiadamia hosta skryptów systemu Windows, aby połączyć się z zestawem obiektów WMI.

    Poniższy przykład kodu VBScript tworzy nowy obiekt SWbemDateTime.

    Set dateTime = CreateObject("WbemScripting.SWbemDateTime")
    
  • Używając ciągu Moniker "winmgmts:" do uzyskania nowego lub istniejącego obiektu.

    Poniższy przykład kodu VBScript używa nazwy "winmgmts:", aby uzyskać wystąpienie Win32_Process z właściwością Handle o wartości 0 (zero). Handle jest kluczową właściwością dla tej klasy.

    Set Process = GetObject("winmgmts:Win32_Process.Handle=0")
    
  • Odwoływanie się do biblioteki typów WMI przy użyciu referencji <i tagu> formatu pliku XML WSH 2.0. Jeśli używasz tagu <odwołania>, tag powinien mieć atrybut uuid, którego wartość to identyfikator GUID dla biblioteki typów WMI, lub (zalecane) atrybut obiektu, którego wartością jest PROGID dowolnego z obiektów skryptów usługi WMI, które można stworzyć.

    Poniższy przykład kodu VBScript używa identyfikatora PROGID "WbemScripting". Aby uruchomić skrypt, zapisz tekst w pliku z rozszerzeniem 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>
    
  • Używanie tagu> obiektu <w celu utworzenia obiektu skryptowego usługi WMI. Można określić atrybut id z wartością nazwy, która odnosi się do obiektu skryptowego usługi WMI, który chcesz utworzyć, oraz atrybut progid równy PROID obiektu skryptowego usługi WMI.

    Poniższy skrypt WSH wyświetla nazwę hosta i liczbę procesorów na komputerze lokalnym. Aby uruchomić skrypt, zapisz tekst w pliku z rozszerzeniem 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>
    

skrypty w usłudze WMI

interfejs API skryptów dla usługi WMI