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


Использование WMI

WMI можно использовать из клиентских приложений и скриптов. Она предоставляет инфраструктуру, которая упрощает обнаружение и выполнение задач управления. Кроме того, можно добавить в набор возможных задач управления, создав собственные поставщики WMI.

Примечание.

Версия WMI следующего поколения для написания приложений и сценариев доступна через инфраструктуру управления Windows (MI). Дополнительные сведения см. в разделе "Поставщики и клиенты MI".

В этом разделе рассматриваются следующие разделы:

Получение данных из WMI

В следующей процедуре описывается, как получить данные из WMI путем написания скрипта или приложения.

Получение данных из WMI путем написания скрипта или приложения

  1. Определите, какой язык следует использовать. Дополнительные сведения о скриптах см. в разделе "Создание скрипта WMI". Дополнительные сведения о C++см. в статье "Создание приложения WMI с помощью C++". Дополнительные сведения о C# или WMI .NET см. в обзоре WMI .NET.

    Данные WMI можно просматривать или управлять ими на многих языках. В следующей таблице перечислены разделы, описывающие использование языков скриптов и приложений для получения данных.

Язык приложения Тема
Скрипты, написанные на размещении скриптов Microsoft ActiveX, включая Visual Basic Scripting Edition (VBScript) и Perl
API сценариев для WMI.
Начните с создания скрипта WMI.
Примеры кода скрипта см. в разделе "Задачи WMI для сценариев и приложений " и репозитория скриптов TechNet ScriptCenter .
Windows PowerShell
Начало работы с Windows PowerShell
Командлеты WMI PowerShell, такие как Get-WmiObject.
Приложения Visual Basic
API сценариев для WMI.
Страницы активных серверов
API сценариев для WMI.
Начните с создания страниц активных серверов для WMI.
Приложения C++
COM API для WMI.
Начните с создания приложения WMI с помощью C++ и примеров приложений WMI C++ (содержит примеры).
платформа .NET Framework приложения, написанные на C#, Visual Basic .NET или J#
Классы в пространстве имен Microsoft.Management.Infrastructure.
Примечание.System.Management — это исходное пространство имен, которое охватывало управляемый код для WMI. Однако базовая технология System.Management обычно медленнее, чем Microsoft.Management.Infrastructure и не масштабируется так же хорошо, как она. Таким образом, не рекомендуется использовать System.Management для новых проектов. (Дополнительные сведения о System.Management, см. обзор WMI .NET.)
  1. Убедитесь, что подключения к удаленным компьютерам работают.

    Дополнительные сведения см. в разделе "Подключение к WMI" на удаленном компьютере.

  2. Для подключения к WMI на удаленных компьютерах требуются правильные параметры безопасности, как описано в разделе "Обслуживание безопасности WMI". В следующей таблице перечислены разделы, описывающие настройку параметров безопасности с помощью языков сценариев и приложений.

    Язык Тема
    Скрипты на любом языке, приложения Visual Basic
    Настройка уровня безопасности процесса по умолчанию с помощью VBScript
    Страницы активных серверов
    Настройка IIS 5 и более поздних версий для скриптов WMI ASP
    C++
    Настройка уровня безопасности процесса по умолчанию с помощью C++ и настройка безопасности для IWbemServices и других прокси-серверов
  3. После подключения к WMI можно получить данные с помощью запросов и перечислений.

    Дополнительные сведения см. в разделе "Управление сведениями о классе и экземпляре" и "Запросы" с помощью WQL.

  4. Данные реестра доступны с помощью WMI, и вы можете создавать новые ключи и значения или изменять существующие.

    Дополнительные сведения см. в разделе "Изменение системного реестра".

  5. Вы можете подписаться на уведомления о событиях через WMI либо временно между перезагрузками системы, либо безвозвратно.

    Дополнительные сведения см. в разделе "Мониторинг событий" и "Получение события WMI".

  6. Данные счетчика производительности для системы доступны через WMI.

    Счетчики библиотеки производительности системы преобразуются в классы WMI. Дополнительные сведения см. в разделе "Мониторинг данных о производительности".

  7. Задачи WMI для сценариев и приложений описывают, как выполнять множество административных задач с помощью WMI.

Предоставление данных WMI

В следующей процедуре описывается, как предоставлять данные WMI путем записи поставщика.

Предоставление данных WMI путем записи поставщика

  • Определите тип поставщика, который вы хотите описать.

    Невозможно написать поставщик WMI в VBScript. Однако вы можете использовать ряд других подходов к созданию COM-поставщика WMI.

    • Использование мастера WMI ATL в Visual Studio.

      Этот подход создает неуправляемый поставщик COM. Дополнительные сведения см. в разделах «Добавление поставщика экземпляров WMI» и «Добавление поставщика событий WMI».

    • Использование COM непосредственно в любой интегрированной среде разработки.

      Этот подход создает неуправляемый поставщик COM.

    • Использование WMI в платформе ".NET Framework" для создания поставщика управляемого кода.

      Этот подход создает поставщик управляемого кода. Поставщики управляемого кода могут быть написаны на любом языке платформы .NET Framework, проще в написании, чем поставщики COM WMI, и могут получать данные из классов на основе WMI CIM, таких как классы Win32. Однако у поставщика WMI платформы .NET Framework есть некоторые ограничения. Дополнительные сведения см. в разделе "Управление приложениями с помощью WMI".

    • Использование классов платформы поставщика не рекомендуется.

      Фреймворк провайдера был заменен мастерами WMI ATL, использованием COM напрямую или провайдерами .NET Framework. Создание COM-поставщика WMI с помощью классов платформы поставщика больше не рекомендуется. В следующей таблице перечислены разделы, описывающие использование поставщиков COM или .NET Framework.

    Провайдер Тема
    Поставщик COM в том же процессе, что и WMI
    Предоставление данных WMI
    Поставщик с отделенной моделью COM
    Включение поставщика в приложение
    поставщик платформы .NET Framework для C# или Visual Basic.NET
    Управление приложениями с помощью WMI

Важные задачи для WMI

В следующих разделах содержатся сведения об использовании WMI для мониторинга и управления корпоративными компонентами.

Тема Описание
Задачи WMI для сценариев и приложений
Описывает, как найти правильный класс и процедуры WMI для использования в сценариях и приложениях, выполняющих общие задачи администрирования компьютера и сети, например добавление нового подключения принтера для удаленного компьютера или поиск всех установленных исправлений на компьютере.
Создание приложения или скрипта WMI
Любой язык сценариев, например VBScript или Perl, который работает с объектами ActiveX, может получить доступ к данным WMI. Приложения могут получить доступ к WMI в C++, используя COM-API для WMI или Visual Basic, используя библиотеку типов Wbemdisp.tlbи API сценариев для WMI.
Подключение к WMI на удаленном компьютере
Описывает, как скрипты, приложения и поставщики могут устанавливать подключения к WMI на удаленных компьютерах для получения данных или управления оборудованием и программным обеспечением.
Подключение к WMI на удаленном компьютере с помощью Windows PowerShell
Описывает, как использовать Windows PowerShell для установления подключений к WMI на удаленных компьютерах для получения данных или управления оборудованием и программным обеспечением.
Мониторинг событий
Описывается, как получать уведомления о событиях посредством создания временных или постоянных потребителей событий WMI.
Предоставление данных WMI
WMI предоставляет динамические данные управления клиентским скриптам и приложениям, получая их от поставщиков.
Получение и предоставление данных на 64-разрядном компьютере
В этой статье описывается, как получить доступ к недефолтным поставщикам и рекомендации для разработчиков поставщиков в 64-разрядных системах.