Основы технологии Windows Management Instrumentation
Введение
Технология Windows Management Instrumentation (WMI) предназначена для централизованного управления компьютерными системами под управлением операционными системами семейства Windows. WMI является реализацией универсального стандарта администрирования WBEM (Web-Based Enterprise Management) и объектной модели информации CIM (Common Information Model), предложенных международной организацией по продвижению технологий удаленного управления DMTF. Данный стандарт позволяет выработать единый подход к управлению разноплановыми объектами информационных систем (серверы, рабочие станции, периферия, серверные и настольные приложения и пр.).
Инфраструктура WMI состоит из четырех компонентов: провайдеры WMI, менеджер объектов CIM (Common Information Model Object Manager), база данных CIM и управляющие программы (рис. 1).
Провайдеры WMI обеспечивают доступность и адресность управляемых с помощью WMI ресурсов. При этом провайдер WMI общается с управляемым объектом с помощью API этого объекта, а с менеджером объектов CIM – посредством стандартного интерфейса прикладного программирования WMI (WMI API). Таким образом, провайдеры скрывают детали внутренней реализации управляемых объектов, позволяя менеджеру объектов CIM обращаться к этим объектам единообразно, используя один и тот же WMI API.
Рис. 1. Инфраструктура WMI
Менеджер объектов CIM (CIMOM) обеспечивает взаимодействие между потребителями сервисов WMI (управляющими приложениями) и провайдерами WMI. Менеджер объектов CIM обрабатывает все запросы, которые поступают от управляющих приложений к WMI, и обеспечивает доставку к этим приложениям информации, получаемой в результате выполнения таких запросов.
|
|
База данных CIM содержит классы, моделирующие различные компоненты системы: жесткие диски, сетевые карты, файлы и папки, процессы, сервисы и т.д. Классы в базе данных CIM логически группируются по пространствам имен, которые упорядочены иерархически.
Управляющие программы – это потребители сервисов WMI. В качестве потребителей могут выступать приложения Win32, сценарии WMI или другие инструменты администрирования, с помощью которых происходит доступ к управляемым объектам посредством WMI.
Наиболее гибким и мощным инструментом администрирования Windows являются сценарии Windows Scripting Host, а синтаксис VBScript наиболее удобен для работы с разветвленной объектной моделью WMI. Поэтому при выполнении лабораторных работ, мы будем использовать сценарии на языке VBScript.
Первый сценарий, показанный в Листинге 1, возвращает информацию о процессоре системы, выполняя три основные функции, общие для всех сценариев WMI: подключение к службе WMI, извлечение информации о конкретном объекте, вывод собранной информации.
|
|
Листинг 1: Сценарий, возвращающий информацию о процессоре
set WMI = GetObject("WinMgmts:")
set objs = WMI.InstancesOf("Win32_Processor")
for each obj in objs
WScript.Echo "Processor: " & obj.Name
next
В первой строке происходит подключение к службе WMI. В переменной WMI после выполнения этой строки сценария будет храниться ссылка на объект SWbemServices. Следующая строка с помощью метода InstancesOf объекта SWbemServices возвращает все экземпляры класса Win32_Processor в виде коллекции SWbemObjectSet. Три последние строки сценария перечисляют содержимое этого набора в цикле for.
Если создать текстовый файл с содержимым Листинга 1 и сохранить его с расширением .vbs, то можно выполнить его с помощью Windows Script Host (WSH). В результате информация, которую извлечет сценарий, будет отображаться в диалоговом окне (рис. 2).
Рис. 2. Результат выполнения сценария (Листинг 1)
Сценарий может быть запущен из командной строки с помощью консольной версии WSH cscript.exe. Например, чтобы выполнить описанный выше сценарий, сохраненный в файле First.vbs, необходимо в командном окне выполнить команду:
cscript first.vbs
В результате в командное окно будет выведена строка “Intel Pentium III processor” (рис. 3).
Рис. 3. Результат выполнения сценария (Листинг 1) в консольном режиме
|
|
Рассмотрим второй сценарий, показанный в Листинге 2. Этот сценарий возвращает список всех свойств класса Win32_Process.
Листинг 2. Сценарий, возвращающий список свойств заданного класса
set objClass = GetObject("WinMgmts:Win32_Process")
set objClassProperties = objClass.Properties_
for each obj in objClassProperties
WScript.Echo obj.Name
next
Для получения доступа к нужному нам классу Win32_Process используется функция GetObject, в качестве параметра которой необходимо указать путь к этому классу: WinMgmts:Win32_Process. После этого в переменной objClass будет хранится указатель на объект SWbemObject. В свойстве Properties_ этой переменной хранится набор всех свойств класса Win32_Process (объект SWbemPropertySet), указатель на которую заносится в переменную objClassProperties. В свойстве Name каждого элемента набора хранится имя соответствующего свойства. Эти имена в цикле for выводятся на экран с помощью метода Echo объекта WScript.
Аналогично можно получить набор методов класса (объект SWbemMethodSet), который хранится в свойстве Methods_ соответствующего объекта SWbemObject.
Дата добавления: 2018-05-12; просмотров: 194; Мы поможем в написании вашей работы! |
Мы поможем в написании ваших работ!