Провайдери wmi - знайомство

У найпростішому варіанті, WMI провайдери призначені для формування зв'язку між менеджером об'єктів CIM (CIMOM) і керованими ресурсами, тобто, вони (провайдери) надають CIMOM інформацію щодо керованого об'єкта, відповідають за обробку запитів, що надходять від керівників програм, а також формують повідомлення при настанні визначених подій.

Провайдери wmi - знайомство

Всі провайдери (WMI providers), зареєстровані в репозиторії CIM є не що інше, як екземпляри системного класу __Win32Provider. даний клас відповідає за реєстрацію інформації щодо фізичної реалізації провайдера WMI (дивіться статтю "Класи WMI, простір імен і CIM").

Процес взаємодії провайдерів з CIMOM і керованими об'єктами не один і той же. Так, з CIMOM спілкування відбувається за рахунок стандартного інтерфейсу прикладного програмування WMI (WMI API), а з керованими об'єктами - за рахунок API інтерфейсу даного об'єкта. Така технологія спілкування дозволяє приховати деталі щодо внутрішньої реалізації керованих об'єктів, тим самим, дає можливість взаємодіяти CIMOM з цими об'єктами одноманітно, використовуючи один і той же WMI API

Якщо говорити про фізичну реалізації провайдерів WMI, то вони є серверами COM або DCOM. і представлені в системі у вигляді динамічних бібліотек (DLL). Дані бібліотечні файли, як правило, знаходяться в системній папці System32, в каталозі Wbem. По ходу статті ми розглянемо основні провайдери WMI, які відповідають за роботу з підсистемою Win32, журналом подій, реєстром і так далі. Також варто зробити акцент на тому, що WMI надає можливості для створення і установки провайдерів, це дозволяє одночасно працювати з пристроями або службами специфічного характеру.

Провайдери wmi - знайомство

На перший погляд може здатися, що всі провайдери WMI однакові і що вони просто надають класи, але це не так.

Типи WMI провайдерів

  • Class (провайдер класів) - Відповідає за надання, зміна, видалення та перерахування класів, які є специфічними для конкретного провайдера. Тип реєстрації - __ClassProviderRegistration. Прикладом служить провайдер Active Directory і SNMP. WMI Provider.
  • Instance (Провайдер примірників) - Відповідає за надання, зміна, видалення та перерахування примірників системних або специфічних для провайдера класів. Кожен екземпляр надає керований об'єкт. Також може підтримувати обробку запитів. Тип реєстрації - __InstanceProviderRegistration. Наприклад, провайдер реєстру і Win32.
  • Property (провайдер властивостей) - Відповідає за надання та зміна значень властивостей індивідуальних об'єктів. Тип реєстрації - __PropertyProviderRegistration. Наприклад, провайдер реєстру.
  • Method (провайдер методів) - Відповідає за надання методів класу, специфічного для провайдера. Тип реєстрації - __MethodProviderRegistration. Наприклад, провайдер реєстру і Win32.
  • Event (провайдер подій) - Відповідає за генерацію повідомлення про події WMI. Тип реєстрації - __EventProviderRegistration. Наприклад, провайдер реєстру і SNMP. WMI Provider
  • Event Consumer (провайдер споживача подій) - Просто діють як споживач подій WMI. Тип реєстрації - __EventConsumerProviderRegistration. Наприклад, споживач подій командного рядка, SMTP і скрипта.

Провайдери wmi - знайомство

Нижче показаний список стандартних провайдерів WMI і пов'язаних з ними динамічних бібліотек.

Стандартні провайдери WMI

Один провайдер WMI може виконувати відразу кілька ролей, так, провайдер реєстру (Registry provider) виконує наступні ролі:

  1. провайдер подій
  2. провайдер примірників
  3. провайдер методів
  4. провайдер властивостей

Аналогічно, провайдер EventLog також підтримує кілька ролей. До його складу входять такі об'єкти як Event Log Computer. Event Log Record і Event Log File. Сам EventLog є провайдером типу Instance (провайдер примірників), оскільки дозволяє визначати кілька примірників для власних класів. Також, для об'єкта Event Log File реалізовані методи backup і restore, які дозволяють створювати резервні копії файлів Event Log і далі відновлювати їх засобами Windows Management Instrumentation. що дозволяє вважати провайдер Event Log провайдером методів (Method). Крім цього, Event Log дозволяє повідомляти про створення нових записів в файлах Event Log, тим самим, виступаючи ще й у ролі провайдера подій (Event).