Поделиться через


Использование библиотеки типов скриптов 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. Выберите файл и щелкните Открыть. Библиотека сценариев WMI Версии 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")
    
  • Использование строки Moniker "winmgmts:" при получении нового или существующего объекта.

    В следующем примере кода VBScript используется моникер "winmgmts:", чтобы получить экземпляр Win32_Process со свойством дескриптор 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. Можно указать атрибут идентификатора со значением имени, ссылающегося на объект скриптов 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