В Windows 2000 реализован ряд функций, которые упрощают процесс управления операционной системой. К числу новых возможностей относится и Windows Management Instrumentation (WMI) - интерфейс, обеспечивающий взаимодействие с компонентами системы, в общем случае доступными лишь через особые механизмы. WMI можно использовать в различных целях, в частности для управления компьютерами с помощью сценариев.
Одной из причин успешного старта Windows NT в начале 90-х была относительная простота использования операционной системы. Пользователи, освоившие Windows 3.1, имели все основания надеяться, что смогут управлять простыми сетями на базе NT. Возможно, сегодня это звучит невероятно, но не надо забывать о том, что NT 3.1 все-таки намного проще, чем Windows 2000. Одного взгляда на панель управления NT было достаточно, чтобы получить представление о ее возможностях.
По мере развития системы интерфейс пользователя стал еще более дружественным. Каждая процедура Windows 2000 снабжена программой-мастером, а каждый объект имеет список свойств Properties с закладками. К диалоговому окну ведет несколько различных путей, а с помощью консоли MMC можно создавать настраиваемые инструментальные наборы с новыми функциями, в том числе разработанными независимыми компаниями.
По мнению опытных администраторов, простой графический интерфейс часто слишком медлителен. Некоторые задачи можно решить из командной строки, но ее возможности не столь широки, как у графических инструментов. Часть операций Windows 2000 выполняется быстрее, если обратиться к тем же интерфейсам управления, которые используются графическими инструментами, но не через пользовательский интерфейс, а посредством сценариев. Благодаря WMI доступ почти к любому компоненту операционной системы можно получить с помощью одного интерфейса и языков сценариев. Например, без WMI невозможно напрямую обратиться к Win32 API, используя VBScript.
Что такое WMI?
WMI - ядро системы управления Windows 2000 и полезное дополнение к другим операционным системам Win32. WMI обеспечивает интерфейс к элементам операционной системы для инструментов MMC и сценариев с помощью CIMOM (Common Infor-mation Model Object Manager) - базы данных объектов, представляющих эти элементы. Благодаря инструментам и сценариям WMI не нужно использовать различные API для обращения к разным компонентам операционной системы. Эти компоненты стыкуются через WMI, как показано на Рисунке 1, а инструменты и сценарии могут читать и записывать данные с помощью WMI.
Рисунок 1. Сценарий для доступа к компонентам Windows 2000 через WMI |
Windows 2000 и Windows 98 совместимы с WMI, но его можно установить и на машинах с Windows 95 и NT 4.0 с пакетом исправлений Service Pack 4 (SP4) или более поздних версий. Более подробно об инсталляции WMI на компьютерах с NT 4.0 и Windows 95 рассказано во врезке «WMI для NT 4.0 и Windows 95». Таким образом, для дистанционного управления с помощью WMI вовсе не обязательно работать с Windows 2000. Но, безусловно, нельзя обратиться к Windows 2000 Perfor-mance Monitor с удаленного компьютера, если сценарий WMI работает на машине с Windows 9x, не имеющей Performance Monitor.
Как уже упоминалось, благодаря WMI можно использовать единый интерфейс для доступа ко многим компонентам операционной системы. В результате с помощью единственного запроса можно собирать информацию разнообразного типа и упростить поиск взаимосвязей между разнородными данными. Если локальная и удаленная машины совместимы с WMI, то этот интерфейс можно использовать для дистанционного управления компьютерами. Но не все утилиты командной строки Windows 2000 имеют синтаксис, позволяющий задействовать их на удаленной машине.
WMI - реализация модели управления предприятием на базе Web, Web-Based Enterprise Management (WBEM), созданной рабочей группой по управлению распределенными системами Distributed Management Task Force (DMTF) при участии примерно десятка компаний, таких, как Com-paq, Sun Microsystems и Microsoft. Задачей WBEM была разработка стандартного набора интерфейсов для управления средой предприятия. Важные компоненты модели WBEM - модель данных (или средство описания и определения объектов), спецификация кодирования и транспортная модель для передачи данных между клиентом и сервером.
В качестве модели данных WBEM используется модель Common Information Model (CIM). CIM представляет собой стандартную систему именования, или схему (schema), для физических и логических компонентов компьютера, таких, как логический раздел жесткого диска, экземпляр исполняемого приложения или кабель. Схема нужна для того, чтобы любой пользователь мог обращаться ко всем элементам CIM, используя одни и те же термины для описания этих элементов и связи с ними.
CIM - объектно-ориентированная схема, поэтому для описания ее компонентов используется объектно-ориентированная терминология. CIM содержит классы, которые представляют собой шаблоны управляемых элементов. Объект - экземпляр класса, представляющий базовый компонент системы. Пространство имен - набор классов для специализированной области управления. Классы содержат свойства и методы.
Существует три уровня CIM. Базовая модель (core model) содержит определения классов, общих для всех областей управления. Общая модель (common model) хранит определения классов, общих для определенных областей управления, но независимых от особенностей той или иной операционной системы или машины; данная модель служит основой для схем, ориентированных на конкретную технологию. Модели расширений (extension models) содержат определения классов, специфичные для конкретной операционной системы или другой технологии.
WMI - модель расширения Micro-soft для платформы компонентов Win32, она расширяет спецификацию CIM 2.0. Для обращения к классу и свойству WMI используется формат extensionprefix_classname.propertyname. Так, в метке Win32_Compu-terSystem.Name Win32 - префикс классов расширения WMI, расположенных в пространстве имен cimv2 схемы CIM; ComputerSystem - класс, а Name - свойство.
Множество команд сценариев WMI связано с установкой и чтением свойств. Пока существует немного методов WMI, но со временем их станет больше, как и методов CIM.
Комплекс инструментов разработки WMI
Классы CIM и Win32 можно просмотреть с помощью комплекта инструментальных средств разработки SDK WMI. Его можно загрузить по адресу: http://www.msdn.microsoft.com/downloads/ sdks/wmi/download.asp. Размер файла весьма велик - 8 Мбайт.
Полный список системных требований приведен в файле README по адресу: http://www.msdn.microsoft.com/downloads/ sdks/wmi/readme.asp, ниже перечислены основные из них. Необходимо иметь операционную систему Windows 2000 или NT 4.0 SP4 или более поздней версии. SDK нельзя установить на системах Windows 9x, даже если на данной платформе можно инсталлировать WMI. Для работы с элементами ActiveX необходим браузер Microsoft Internet Explorer (IE) 5.0. Другие минимальные требования - процессор Pentium, 32 Мбайт оперативной памяти, 40 Мбайт на диске и видеокарта с количеством цветов не менее 256 при разрешении 800x600. Этим системным требованиям удовлетворяет любой компьютер, работающий под Windows 2000. Если в машине нет сетевой платы, то CIMOM не сможет функционировать в качестве службы, а только лишь как приложение. Для этого нужно запустить исполняемый файл winmgmt.exe, который находится в базовом каталоге WMI, \%systemroot%system32wbem.
Установить SDK могут только члены группы Administrators. Процедура установки проста. Для начала необходимо запустить файл wmisdk.exe. Следует указать папку, в которой будут размещены файлы (по умолчанию C:program fileswmi). Затем нужно выбрать устанавливаемые компоненты. По умолчанию инсталлируются все компоненты, за исключением SNMP. На последней странице мастера нужно щелкнуть на кнопке Finish. Перезапускать компьютер не требуется. После того как все нужные файлы будут скопированы программой инсталляции в выбранную папку, в пункте меню Programs появится новая программная группа - WMI SDK.
После завершения установки нужно щелкнуть на кнопке Start, выбрать Programs и WMI SDK и открыть WMI CIM Studio. Когда CIM Studio предложит соединиться с пространством имен и покажет выбранное по умолчанию значение rootcimv2, следует щелкнуть на кнопке OK. Обладателю учетной записи Administrator следует вновь щелкнуть OK, чтобы зарегистрироваться в качестве текущего пользователя. Всем, кто вошел в систему под иным именем, необходимо зарегистрироваться в качестве Administrator.
Затем нужно выбрать на данном компьютере объект управления: диск C. Точное имя этого компонента в CIM или WMI неизвестно, поэтому, вместо того чтобы просматривать сотни классов в списках CMI Studio, я щелкнула на кнопке Find (пиктограмма «бинокль» в верхней части левой панели). В диалоговом окне Search for Class, показанном на Экране 1, я ввела ключевое слово, которое, на мой взгляд, с большой вероятностью должно присутствовать в имени класса для диска C, и нажала Go!. Поскольку мне нужно было найти именованный раздел и я знала, что в операционных системах Windows такие разделы называются логическими дисками или логическими накопителями, я вела поиск по ключевому слову logical. Можно провести поиск по слову disk, но в таком случае придется просматривать гораздо больше результатов.
Экран 1. Поиск класса WMI. |
Обнаруженные классы показаны на Экране 1. Я выбрала Win32_Logical-Disk и щелкнула OK, после чего на экране появилось окно, показанное на Экране 2. Почему не CIM_Logical-Disk? Как уже упоминалось, Win32 - префикс для любых объектов, управляемых WMI. Если выбрать CIM_LogicalDisk и попытаться отобразить экземпляры, то не будет получено никакой конкретной информации об имеющихся логических дисках - каждому логическому устройству будет соответствовать запись Win32_Logi-calDisk. В правой панели показаны свойства класса Win32_LogicalDisk. Следует обратить внимание, что значения свойств пусты, так как мы рассматриваем класс, а не конкретный экземпляр класса. Чтобы вывести на экран экземпляры класса Win32_LogicalDisk, нужно щелкнуть на кнопке Instances в верхней части правой панели (четвертая кнопка справа).
Экран 2. Доступные свойства класса Win32_LogicalDisk. |
В результате на экран выводится окно, в правой панели которого перечислены все экземпляры логических дисков на данной машине, в том числе сетевые логические накопители. Я щелкнула на экземпляре с ID устройства «C:». На закладках правой панели окна, показанного на Экране 3, отображаются свойства и методы выбранного экземпляра. Имя выбранного логического диска показано в верхней строке правой панели.
Экран 3. Свойства экземпляра Win32_LogicalDisk.DeviceID=«C:». |
Изменить свойства или применить методы можно с помощью сценария. Чтобы получить информацию о свойствах, нужно выбрать класс Win32_LogicalDisk или экземпляр Win32_LogicalDisk.DeviceID=«C:» и щелкнуть на кнопке Help.
Составление сценария
Теперь, когда мы познакомились с классом Win32_LogicalDisk и его свойствами, я хочу показать, как использовать эту информацию в сценарии. Если на компьютере установлен комплект ресурсов Microsoft Windows 2000 Resource Kit, то файл listfreespace.vbs по умолчанию находится в папке program files esource kit. Данный сценарий опрашивает все объекты класса Win32_LogicalDisk, извлекая значения двух свойств: DeviceID (буква накопителя) и FreeSpace (число свободных байтов на диске). Если на компьютере дисковод обозначен буквой A, а привод компакт-дисков - буквой D, то результат работы listfreespace.vbs будет выглядеть примерно так:
A: not available C: 8,243,381,248 bytes D: not available G: 4,776,943,616 bytes
Ту же информацию можно получить с помощью более короткого сценария getfree.vbs (см. Листинг 1). Сценарий снабжен подробными комментариями. При вызове сценария пользователь указывает букву диска, и getfree.vbs сообщает объем свободного пространства и тип файловой системы данного устройства. Например, если ввести с клавиатуры моего ноутбука
getfree.vbs c:
появится сообщение, приведенное на Экране 4.
Экран 4. Сообщение getfree.vbs. |
Итак, я рассказала о том, что такое WMI и как найти на компьютере управляемые объекты. Конечно, прочитав статью, нельзя немедленно превратиться в специалиста по сценариям WMI, но теперь вы знаете, какие компоненты следует использовать при написании сценариев и где их отыскать.
КРИСТА АНДЕРСОН - независимый автор и консультант, редактор журнала Windows NT Magazine. Ее последняя книга - «Mastering Local Area Networks». С ней можно связаться по адресу: candersn@adelphia.net.
WMI для NT 4.0 и Windows 95
Интерфейс Windows Management Instrumentation (WMI) 1.5 уже инсталлирован на компьютерах с Windows 2000 и Windows 98 как часть ядра операционной системы, но он не относится к числу встроенных компонентов Windows NT 4.0 и Windows 95. Чтобы выполнить сценарии на системе NT 4.0 или Windows 95, нужно установить WMI, даже если эти сценарии предназначены для управления удаленными компьютерами.
WMI 1.5 для NT 4.0 Service Pack 4 (SP4) и более поздних версий и Windows 95 можно загрузить по адресу: http://www.msdn.microsoft.com/downloads/ sdks/wmi/download.asp. Если планируется установить WMI как на системах NT 4.0, так и Windows 95, можно загрузить версию, совместимую с обеими платформами. Установив программы, нужно запустить wmicore.exe, чтобы начать работу небольшого мастера, который предлагает принять условия лицензионного соглашения End User License Agreement (EULA) и подтвердить, что вам известно о невозможности удаления однажды установленного WMI. Программа инсталляции копирует несколько файлов на компьютер пользователя. После перезагрузки на системе появится новая папка (\%systemroot%systemwbem на машинах Windows 95). Функциональность WMI зависит от платформы: например, в Windows 95 не предусмотрена регистрация событий, поэтому через WMI нельзя обратиться к журналам событий Windows 95, тогда как на компьютере Windows 2000 или NT 4.0 это возможно.