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

Всі провайдери (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 провайдерів
- 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 може виконувати відразу кілька ролей, так, провайдер реєстру (Registry provider) виконує наступні ролі:
- провайдер подій
- провайдер примірників
- провайдер методів
- провайдер властивостей
Аналогічно, провайдер 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).