Инструментарий управления Windows

Цель

Инструментарий управления Windows (WMI) является реализацией Микрософтом идеи управления предприятием, основанной на веб-технологиях (WBEM), которая является промышленной инициативой разработать стандартную технологию для доступа к информации на предприятиях. WMI использует общую информационную модель (CIM) - промышленный стандарт, чтобы представлять системы, приложения, сети, устройства, и другие управляющие компоненты. Вы можете использовать WMI, чтобы автоматизировать административные задачи на предприятии.

 

Где применимо

WMI может быть использован во всех приложениях под Windows, и - наиболее применяем в корпоративных приложениях.

Системные администраторы могут найти информацию об использовании WMI на TechNet, и в различных книгах о WMI. Смотри дальнейшую информацию.

 

Вниманию разработчиков

WMI разработан для программистов кто использует C/C++, Микрософт Visual Basic  приложение, или язык описания, которые имеют двигатель на Windows и могут обращаться к Микрософт ActiveX  объектам. разработчикам  на C++ или C# нужно некоторая хорошая осведомленность с программированием COM.

 

О WMI

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

WMI предлагает множество программных интерфейсов как например, Микрософт VBScript, C++, открытая база данных связности (ODBC), Visual Basic, или HTML, которые разработчики могут использовать, чтобы модифицировать по заказу пользователя управляющие приложения . Системные администраторы могут использовать WMI создавая сценарии, чтобы автоматизировать административные задачи. WMI может интегрироваться с компонентами Windows такими, как например, служба активного каталога, чтобы позволяет учитывать унифицированный опыт управления.

 

Управление с помощью WMI

Инструментарий управления Windows (WMI) основана на идеи управления предприятием, основанной на веб-технологиях(WBEM). Промышленные лидеры формировали инициативу WBEM, чтобы производить каркас для стандартизованных, дешевых решений необходимости системного управления предприятия.

Цель WMI в том, чтобы предоставить и обеспечить стандартизованные средства чтобы управлять вашей компьютерной системой, будь это локальный компьютер или все компьютеры на предприятии. В течение своих самых простых условий, управление является лишь немногим более чем просто собирание данных о состоянии управляющего объекта в компьютерной системе и управление измением состояния управляющего объекта изменяя загружаемые  об объекте данные . Управляющий объект может быть аппаратным объектом, как например, массив памяти, порт, или дисковод. Это может также быть программным объектом, как например, услуга, счет пользователя, или страничный файл.

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

 

АРХИТЕКТУРА WMI

Цель WMI в том, чтобы обеспечить однородный интерфейс для любых локальных или дистанционных приложений или сценариев, которые получают управляющие данные от компьютерной системы, сети, или предприятия. Однородный слой интерфейса WMI означает, что приложения и сценарии, которые - клиенты для WMI не должны называть широкий набор функций программного интерфейса приложений(APIs) операционной системы,  многие из которых не могут быть вызваны клиентами автоматизации подобно сценариям или приложениям Visual Basic. Много функций APIs операционной системы также не вызываются с удаленной машины.

Приложение управления связывается с WMI через ряд языков, как например, Visual Basic, C++, ODBC, и ActiveX. Все языки описания, которые могут обращаться к объектам ActiveX могут иметь доступ к данным WMI. Все интерфейсы WMI основаны в Компонентной Объектной Модели (COM). После того, как WMI извлечет данные, он загружает данные, используя Общую Информационную Модель (CIM), общественный стандарт.

Следующая диаграмма показывает компоненты WMI.

 

" Управляемые объектами и поставщики

Управляемый объект - логический или физический компонент предприятия, как например, накопитель на жестком диске, сетевой адаптер, база данных, операционная система, процесс, или услуга. Управляющий объект связывается с WMI через поставщика WMI, который вызывает методы COM API для WMI.

Поставщик является объектом COM, который контролируетодним или более управляемыми объектами для WMI. Аналогично драйверу, поставщик обеспечивает WMI данными с управляемого объекта. Поставщик также оперирует сообщениями от WMI к управляемому объекту.

Например, Платформа SDK отправляет с поставщиком реестра, который предоставляет  доступ к системному реестру. WMI передает информацию от поставщиков до инфраструктуры WMI когда приложения клиента или сценарий запрашивают данные из реестра. Поставщик Регистрации имеет один класс WMI, StdRegProv, со многими методами но без свойств. Другие поставщики, как например, поставщик Win32, обычно имеет классы со многими свойствами и несколькими методами, как например, Win32_Process или Win32_LogicalDisk.

" ИНФРАСТРУКТУРА WMI

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

Большинство классов поставщика, как например, Win32_LogicalDisk, определены в Управляющем Объектном Формате файлов (MOF), скомпилированные в хранилище WMI с помошью mofcomp.exe. Поставщик также имеет файл DLL, который содержит код, который осуществляет классы.

" ПРИЛОЖЕНИЯ управления WMI и сценарии

Приложение управления или сценарий - приложение, которое взаимодействует с инфраструктурой WMI. Приложение управления может запрашивать или перечислять данные управления вызывая или COM API для WMI или API сценариев для WMI. Приложения управления могут вызвать методы или API, чтобы посылать инструкции или перестраивать управляющий объект. Единственные данные или действия доступные для управляемого объекта как например, дисковод или сервис - те которые поставщик поддерживает.

 

Управляющие Объекты в WMI

Управляющий объект - операционная система или аппаратный объект в инструментарии управления Windows (WMI), которая создает представление данных объекта. Например, объект Win32_Service проверяет и регулирует услугу, которая - объект операционной системы. Объект Win32_Service имеет методы, которые запускают, останавливают или модифицируют услугу. В хранилище WMI, Вы можете найти объект Win32_Service, который представляет как сервис так и определение класса Win32_Service.

Поставщик Win32 следит за объектами Win32_Service и поставляет текущие динамические и конфигурационные данные для услуг, которые представляют объекты Win32_Service. Например, Вы можете получить данные как например, работает услуга из свойства Состояние.

 

Общая Информационная Модель

Общая Информационная Модель (CIM), - расширяемая, объектно-ориентированная модель данных, которая содержит информацию о различных частях предприятия. Через инструментарий управления Windows (WMI), разработчик может использовать CIM, чтобы создавать классы, которые представляют накопители на жестком диске, приложения, сетевые маршрутизаторы, или даже технологий определяемых пользователем как например, сетевой воздушный формирователь. Просматривая и внося изменениями в класс CIM, менеджер может управлять различными аспектами предприятия. Например, менеджер мог запросить класса CIM, представляющий настольную рабочую станцию. Менеджер может затем запустить сценарий, чтобы модифицировать экземпляр рабочей станции CIM. WMI должен переводить любое изменение в экземпляре класса рабочей станции CIM в изменение в фактической рабочей станции.

CIM - языко-независимое модель программирования, которая использует объектно-ориентированные методы, чтобы описывать предприятие. Используя три уровня наследования родителя/наследника, CIM может описать как общие так и специфические аспекты предприятия. CIM Также использует технику вызова ассоциаций, чтобы связывать различные части модели предприятия вместе и использовать схемы, чтобы различать другие среды управления.

CIM Предназначен представлять последовательный вид логических и физических объектов в среде управления. CIM Представляет управляющие объекты, использующие объектно-ориентированные конструкции названные классами. Подобно C++ или классу COM, класс CIM может включить свойства, чтобы описывать данные и методы, чтобы описывать поведение. Подобно набору классов COM, CIM не привязан к конкретной платформе. Тем не менее, WMI включает расширение CIM, которое описывает платформу операционной системыMicrosoft  Windows.

CIM Определяет три уровня классов:

" Ядро

Базовые классы представляют управляющие объекты, которые относятся ко всем областям управления. Эти классы обеспечивают основной словарь для анализа и описи управляемых систем. __Parameters И __SystemSecurity классы являются примерами основных классов.

" Общие

Общие классы представляют управляющие объекты, которые относятся к специфическим областям управления. Тем не менее, общие классы независимы от конкретной реализации или технологии. Общие классы являются расширением основных классов. Класс CIM_UnitaryComputerSystem является примером общего класса.

" Расширенные

Расширенные классы представляют управляемые объекты, которые являются технолого-специфическими дополнениями к общим классам. Расширенный класс обычно относится к специфической платформе как например, UNIX или среда Microsoft  Win32. Класс Win32_ComputerSystem является примером расширенного класса.

Разработчик может получать класс от другого класса. Производный класс представляет специальный случай родительского класса и наследует все свойства и методы родителя. Например, Win32_ComputerSystem наследуется из CIM_UnitaryComputerSystem. Связь наследства может быть определена используя системные свойства __Derivation, __Dynasty, и __SuperClass. __Derivation Системное свойство является массивом строк, перечисляющих целую цепь наследства вплоть до корневого класса, который также включен в __Dynasty. __SuperClass Системное свойство показывает непосредственного родителя текущего класса.

WMI также поддерживает ассоциации. Ассоциация является отношением между двумя или более другими классами WMI. Например, выполняющаяся рабочая станция обычно имеет процессор. Ассоциация соединяет  Класс  WMI Win32_ComputerSystemProcessor и класс рабочей станции Win32_ComputerSystem с классом процессора Win32_Processor. Тем не менее, ассоциации недолжны соединять два зависимых класса вместе. Фактически, первичная цель ассоциации в том, чтобы показывать связь между классами, которые не обязательно зависимы от друг друга.

Наконец, WMI поддерживает понятие схем. В контексте WMI, схема является группой классов, которые описывают конкретную среду управления. Платформа SDK использует две схемы: схема CIM и схема Win32. Имена класса схемы CIM начинают с CIM_, и имена класса схемы Win32 начинают с Win32_. Схема CIM содержит определения для основного и общего классов, тогда как схема Win32 содержит определения для расширенных классов, которые общие в среде Win32. Тем не менее, независимые поставщики могут создать свои собственные схемы, чтобы описывать поставщик-специфические требования. Поскольку схемы могут быть бесконечно расширяемым, разработчик может всегда добавить новые классы, чтобы описывать новые управляющие объекты в существующей среде. Для простоты, тем не менее, большинство поставщиков, которые создают схемы, которые наследуют свойства из CIM или схем Win32.

 

Управляющий Объектный Формат

Микрософт применяет Общую Информационную Модель (CIM) для разных целей. Для создания и манипулирования классами CIM и экземплярами, Микрософт предоставляет методы для всех поддерживаемых языков программирования и интерфейсов. Тем не менее, наиболее общие средства создания нового класса CIM связаны с Управляющим Объектным Форматом языка (MOF), который основан на Языке Определения Интерфейса (IDL), языке, который описывает интерфейсы COM.

Язык MOF позволяет разработчику использовать стандартный текстовый редактор или среду разработки, чтобы описывать набор классов CIM, что в свою очередь описывает специфическую технологию. Разработчик может затем использовать эти новые классы, чтобы моделировать и управлять новыми технологиями в предприятии. Например, разработчик может создать класс CIM, который описывает производящий рычаг (руку) робота или новое приложение текстового процессора.

После того, как разработчик завершит описание класса CIM, компилятор MOF выполняет грамматический разбор файл MOF в соответствующие классы CIM и добавляет классы к хранилищу WMI. Оттуда, поставщик или приложение управления могут иметь доступ к классам CIM через стандартные интерфейсы COM. Компилятор MOF является частью ядра инструментария управления Windows и устанавливается по умолчанию на Microsoft  Windows  2000, Издание Тысячелетия Windows, и Windows XP.

Язык MOF является форматом чтобы описывать классы CIM, которые отличаються от традиционного C++ или описания API сценариев. Код MOF обеспечивает несколько преимуществ над традиционными методами. Код MOF:

" Эффективный.

Класс, который берет страницы, чтобы создаться с интерфейcом C++ требует только создания параграфа с MOF кодом, что уменьшает время разработки .

" Человеческий-удобочитаемый.

По сравнению с Microsoft  Visual C++  или Microsoft  Visual Basic , код MOF очень легкий читаеться, уменьшая стоимость будущей эксплуатации.

" Многократно используемый.

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

 

 

ИНФРАСТРУКТУРА WMI

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

Услуга Управления Windows реализована как поток в пределах главного процесса общего обслуживания SVCHOST.

Windows 2000: услуга управления Windows стартует как отдельный процесс сервиса.

Windows NT 4.0 и Windows Me/98/95: услуга Управления Windows стартует как стандартный выполняемый файл.

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

Услуга Управления Windows взаимодействует с приложениями управления через интерфейс COM. Когда приложение делает запрос через интерфейс, сервис Управления Windows определяет включает ли этот запрос статические или динамические данные. Если запрос включает статические данные, как например, имя управляющего объекта, услуга Управления Windows извлекает данные из хранилища WMI. Если запрос включает динамические данные, как например, сумма памяти  к настоящему времени используемой управляемым объектом, сервис Управления Windows всегда передает запрос поставщику.

Сервис Управления Windows знает куда надо передавать информацию поскольку поставщики регистрируют их позицию в сервисе управления Windows. Поставщик также регистрирует поддержку для конкретных операций, как например, поиск данных, модификация, удаление, перечисление, или обработка запроса. Сервис управления Windows использует регистрационную информацию поставщика, чтобы проверить соответствие прикладного запроса подходящему поставщику. Сервис Управления Windows также использует регистрационную информацию, чтобы загружать и снимать поставщиков по необходимости. Когда поставщик завершает обработку запроса, поставщик возвращает результат в сервис управления Windows. В свою очередь, сервис Управления Windows пересылает результат в приложение через интерфейс COM.

Услуга Управления Windows записывает все зарегистрированные ошибки в протокол событий. Например,  неудача регистрации поставщика записывается в протокол событий чтобы Вы знали что поставщик не зарегистрировался успешно.