Использование библиотеки типов скриптов WMI

Библиотеку типов скриптов WMI можно использовать для вызова методов API сценариев WMI из Microsoft Visual Studio и в WSF-файлах узла сценариев Windows.

Использование библиотеки типов сценариев WMI с Microsoft Visual Studio

Примечание

Функции Visual InterDev 6.0 интегрированы в Microsoft Visual Studio .NET.

 

В следующей процедуре описывается, как включить интегрированную среду разработки (IDE) для поддержки библиотеки типов WbemScripting.

Добавление библиотеки типов скриптов WMI в ссылки на проект

  1. Выберите Добавить ссылки в меню Проект .

  2. На вкладке COM в поле Добавить ссылку выберите Библиотека Microsoft WMI Scripting версии 1.2.

  3. Если подходящий параметр не отображается в списке Ссылки, добавьте его с помощью команды Обзор в поле Ссылки . Обзор открывает поле Добавить ссылку, позволяющее найти библиотеку типов WbemScripting.

    Библиотека типов WbemScripting находится в файле Wbemdisp.tlb в каталоге %windir%\System32\Wbem.

  4. Выберите файл и нажмите Открыть. Библиотека microsoft WMI Scripting версии 1.2 появится в списке ссылок. Убедитесь, что выбрано поле рядом с этим элементом в списке.

Использование библиотеки типов сценариев WMI с узлом сценариев Windows 2.0

Ссылку на WbemScripting.SWbemLocator можно включить в WSF-файл узла сценариев Windows, в отличие от скрипта, написанного на Visual Basic, Scripting Edition или других языках сценариев. Это позволяет использовать имена констант вместо значений. Например, при настройке проверки подлинности используйте WbemAuthenticationLevelPktPrivacy , а не значение 6.

Скрипты могут подключаться к API скриптов для библиотеки типов WMI с помощью следующих методов:

  • Указание GUID WbemScripting в методах VBScript CreateObject и GetObject.

    Это оповещает узел сценариев Windows о подключении к набору объектов WMI.

    В следующем примере кода VBScript создается новый объект SWbemDateTime .

    Set dateTime = CreateObject("WbemScripting.SWbemDateTime")
    
  • Использование строки моникера "winmgmts:" при получении нового или существующего объекта.

    В следующем примере кода VBScript используется моникер winmgmts:, чтобы получить экземпляр Win32_Process со свойством Handle , равным 0 (ноль). Handle — это ключевое свойство для этого класса.

    Set Process = GetObject("winmgmts:Win32_Process.Handle=0")
    
  • Ссылка на библиотеку типов WMI с помощью <ссылочного> тега xml-файла WSH 2.0. При использовании <ссылочного> тега тег должен иметь атрибут uuid , значение которого является GUID библиотеки типов WMI, или (рекомендуется) атрибут объекта, значение которого равно PROGID любого из создаваемых объектов скриптов WMI.

    В следующем примере кода VBScript используется PROGID WbemScripting . Чтобы запустить скрипт, сохраните текст в файле с расширением 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>
    
  • Использование тега <объекта для> создания объекта скрипта WMI. Можно указать атрибут id со значением имени, которое ссылается на объект скрипта WMI, который вы хотите создать, и атрибут progid , равный PROID объекта скрипта WMI.

    Следующий скрипт WSH отображает имя узла и количество процессоров на локальном компьютере. Чтобы запустить скрипт, сохраните текст в файле с расширением 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>
    

Создание скриптов в WMI

API скриптов для WMI