Введение

Интерфейс Windows для мониторинга и уведомлений. Инструментарий управления Windows (WMI) представляет собой набор расширений модели драйверов Windows, обеспечивающий интерфейс операционной системы, посредством которого инструментированные компоненты предоставляют информацию и уведомления. WMI является реализацией Microsoft стандартов Web Based Enterprise Management (WBEM) и Common Information Model (CIM), разработанных Distributed Management Task Force (DMTF). WMI позволяет использовать скриптовые языки (такие как VBScript или Windows PowerShell) для управления персональными компьютерами и серверами Microsoft Windows как локально, так и удаленно. WMI предустановлен в операционных системах Windows 2000 – Windows 11. Он доступен для загрузки для Windows NT и Windows 95 – Windows 98. Microsoft также предоставляет интерфейс командной строки для WMI, называемый Windows Management Instrumentation Command-line (WMIC). Однако WMIC считается устаревшим, начиная с Windows 10 версии 21H1, Windows 11 и Windows Server 2022.

Цель WMI

Целью WMI является определение собственного набора спецификаций, не зависящих от среды, которые обеспечивают обмен информацией об управлении между приложениями управления. WMI устанавливает корпоративные стандарты управления и связанные с ними технологии для Windows, которые взаимодействуют с существующими стандартами управления, такими как Интерфейс управления настольными системами (DMI) и SNMP. WMI дополняет эти стандарты, предоставляя унифицированную модель, представляющую управляемую среду, посредством которой данные об управлении из любого источника могут быть доступны единым способом.

Особенности

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

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

Интерфейсы управления .NET: поскольку пространство имен System.Management опирается на существующую инфраструктуру COM/DCOM, созданный поставщик WMI и его набор классов WMI автоматически становятся доступными для всех приложений .NET независимо от используемого языка (например, C#, VB.NET). Помимо проектирования классов WMI и разработки поставщика, как и в случае со скриптами, командам разработчиков и тестировщиков Microsoft не требуется создавать, проверять и тестировать новые сборки для поддержки нового пространства имен в .NET Framework, так как эта поддержка уже доступна в WMI бесплатно.

Интерфейсы программирования C/C++ COM/DCOM: как и большинство компонентов Windows, программисты COM/DCOM могут использовать возможности разрабатываемого ими поставщика на уровне интерфейсов COM/DCOM. Как и в предыдущих средах (скриптинг и .NET Framework), потребитель COM/DCOM должен взаимодействовать только со стандартным набором интерфейсов WMI COM для использования возможностей поставщика WMI и его набора поддерживаемых классов WMI. Чтобы сделать всю информацию об управлении доступной из нативных API, разработчику поставщика WMI необходимо взаимодействовать с набором предварительно определенных интерфейсов WMI COM. Это автоматически сделает информацию об управлении доступной на уровне WMI COM. Кроме того, объектная модель интерфейса COM для скриптов очень похожа на объектную модель интерфейса COM/DCOM, что упрощает разработчикам освоение работы со скриптами.

Возможности удаленного взаимодействия через DCOM и SOAP: WMI предлагает транспорт DCOM, а не только локальные возможности COM, поскольку управление связано с удаленным взаимодействием. Кроме того, транспорт SOAP будет доступен в Windows Server 2003 R2 благодаря инициативе WS-Management, возглавляемой Microsoft, Intel, Sun Microsystems и Dell. Эта инициатива позволяет удаленно выполнять любые скрипты или использовать данные WMI через определенный набор интерфейсов, обрабатывающих запросы и ответы SOAP. Преимущество для разработчика поставщика WMI заключается в том, что когда он предоставляет все свои функции через WMI, Windows Remote Management/WS-Management может, в свою очередь, также использовать эту информацию (встроенные объекты в экземплярах WMI не поддерживаются в Windows Server 2003 R2, но это планируется реализовать в Vista). Все слои управления WS и сопоставление модели данных CIM с SOAP предоставляются бесплатно в решении WMI/WS-Management. В случае необходимости использования DCOM, реализация DCOM требует наличия прокси-DLL, развернутой на каждой клиентской машине. Поскольку WMI доступен в операционной системе Windows начиная с Windows 2000, эти проблемы устранены.

Поддержка запросов: WMI из коробки предлагает поддержку запросов WQL. Это означает, что если поставщик не предназначен для поддержки запросов, WMI поддерживает их с помощью техники перечисления из поставщика.

Возможности событий: WMI предоставляет возможность уведомлять подписчика о любом интересующем его событии. WMI использует язык запросов WMI (WQL) для отправки запросов событий WQL и определяет тип возвращаемых событий. Механизм событий, со всеми связанными обратными вызовами, является частью интерфейсов WMI COM/DCOM и автоматизации. Любой разработчик поставщика WMI может воспользоваться этой функциональностью без дополнительных затрат для своих клиентов. Потребитель сам решает, как он хочет использовать информацию об управлении, предоставляемую поставщиком WMI и его набором связанных классов WMI.

Генератор шаблонов кода: для ускорения процесса написания поставщика WMI, включая все интерфейсы COM/DCOM и связанные определения, команда WMI разработала мастер WMI ATL для генерации шаблона кода, реализующего поставщика. Сгенерированный код основан на модели классов WMI, первоначально разработанной разработчиком. Разработчик поставщика WMI сможет связать предварительно определенные интерфейсы COM/DCOM для поставщика WMI с набором собственных API, извлекающих информацию об управлении для экспорта. Задача состоит в заполнении "пробелов" в коде поставщика для создания необходимой логики взаимодействия.

Предсказуемость: предсказуемость важна для ИТ-специалистов, поскольку она определяет способность специалиста, имеющего опыт работы с набором интерфейсов управления компонентом Windows, немедленно и интуитивно применять эти знания к любому другому управляемому компоненту Windows, не изучая все с нуля. Предсказуемость для клиента — это реальная выгода, поскольку она повышает возврат инвестиций (ROI). Человек, столкнувшийся с такой ситуацией, просто ожидает, что все будет работать одинаково, основываясь на его предыдущем опыте. Постоянное увеличение количества программируемых интерфейсов COM/скриптов оказывает огромное влияние на предсказуемость, поскольку это затрудняет клиентам автоматизацию, управление Windows и использование существующих знаний. WMI с CIM решает эту проблему, всегда предоставляя одну и ту же объектную модель программирования (COM/DCOM, автоматизация, .NET), независимо от управляемого объекта.

Защита существующих инвестиций клиентов: защита инвестиций клиентов и партнеров стимулирует клиентов инвестировать в технологии. Поскольку Microsoft в последние годы вложила много средств в написание поставщиков WMI, клиенты и партнеры инвестировали в инструменты, использующие возможности WMI в Windows. Поэтому они естественным образом продолжают использовать эти возможности, вместо того чтобы использовать новый набор конкретных интерфейсов для каждого управляемого компонента Windows. Конкретный набор интерфейсов означает наличие конкретного набора агентов или разработанного внутри компании программного обеспечения, основанного на новой модели или наборе интерфейсов, специально предназначенных для компонента или технологии. Используя возможности WMI сегодня, клиенты и партнеры могут использовать ранее сделанные инвестиции в работу, минимизируя при этом свои затраты на разработку, обучение и новые открытия. Это также окажет большое влияние на стабильность и надежность их инфраструктуры, поскольку они продолжат использовать существующую реализацию с улучшенной технологией.

Предоставление логичной и унифицированной модели администрирования: как было кратко описано ранее во введении, эта модель основана на отраслевом стандарте под названием CIM, определенном DMTF (https://www.dmtf.org/). Схема на основе классов CIM определяется консорциумом конструкторов и разработчиков программного обеспечения, отвечающим требованиям отрасли. Это означает, что WMI используют не только Microsoft, но и другие сторонние конструкторы или разработчики пишут свой собственный код, чтобы соответствовать модели. Например, Intel делает это для некоторых своих сетевых драйверов и программного обеспечения. HP использует существующие поставщики WMI и реализует свои собственные поставщики WMI в своем программном обеспечении HP OpenView Enterprise Management. IBM использует WMI из Tivoli management suite, MOM и SMS также используют и предоставляют информацию WMI. Наконец, Windows XP SP2 использует WMI для получения информации о состоянии от антивирусного программного обеспечения и брандмауэров.

Расширения драйверов WMI

Расширения WMI для WDM обеспечивают инструментарий на уровне ядра, включая публикацию информации, настройку параметров устройств, предоставление уведомлений о событиях от драйверов устройств и возможность для администраторов задавать безопасность данных через поставщик WMI, известный как поставщик WDM. Эти расширения являются частью архитектуры WDM, однако обладают широкой применимостью и могут использоваться с другими типами драйверов, такими как SCSI и NDIS. Служба расширений драйверов WMI (WMI Driver Extensions) отслеживает все драйверы и поставщики трассировки событий, настроенные на публикацию информации WMI или трассировки событий. Инструментированные данные оборудования предоставляются посредством драйверов, поддерживающих расширения WMI для WDM. Расширения WMI для WDM предоставляют набор интерфейсов драйверов устройств Windows для инструментализации данных в моделях драйверов, встроенных в Windows, что позволяет OEM-производителям и IHV легко расширять набор инструментированных данных и повышать ценность аппаратного и программного решения. Однако расширения драйверов WMI не поддерживаются в Windows Vista и более поздних операционных системах.