NT club. Часть 13. WSH+WMI

NT club. Часть 13. WSH+WMI

— Я скажу всем, до чего довел планету этот фигляр ПЖ! Пацаки чатланам на голову сели!
(с) "Кин-Дза-Дза!"

Пролог
Сегодня мы поговорим о таких важных компонентах NT-систем (не младше NT 5.0, т.е. Windows 2000), предназначенных для упрощения администрирования ОС, как Windows Script Host (WSH — сервер сценариев Windows) и Windows Management Instrumentation (WMI — инструментарий управления Windows). К слову, данные средства могут использоваться и для других целей, но первостепенное их предназначение — облегчение нелегкого труда системного администратора. Рекомендую после прочтения статьи воспользоваться справкой Windows для более углубленного понимания материала, а для тех, кто собирается использовать эти средства всерьез, нужна соответствующая литература и/или ресурсы Интернета. Ну что ж, начнем наш обзор.

WSH
Вы никогда не задумывались, почему в NT-системах командная строка (консоль) обладает сравнительно небольшими возможностями программирования? Конечно, консоль для любой "серьезной" ОС — атрибут обязательный, поэтому в NT она есть, однако почему же она не так функциональна, как командные интерпретаторы из мира UNIX (BASH и сотоварищи)? Ну, во-первых, изначально командный процессор NT должен был быть совместимым с MS-DOS, что накладывало свои ограничения; а во-вторых, начиная с Windows 2000 в составе всех NT-образных ОС появилась такая полезная вещь, как сервер (хост) сценариев (скриптов), позволяющий реализовать все то, чего так недоставало в имеющейся командной строке — полнофункциональные средства программирования.
Особая прелесть данного сервера в том, что он не зависит от языка. Вы можете писать свои сценарии на чем угодно: VBScript, JScript, Perl и т.д. — нужно лишь чтобы в системе стояла соответствующая библиотека. По умолчанию поддерживаются Visual Basic Scripting Edition (VBScript) и Microsoft JScript (JScript). Еще одно достоинство стандартного сервера сценариев заключается в его узкой специализации. Поясню данное утверждение. Как известно, Internet Explorer также является хостом сценариев, так как способен, кроме языка HTML (тоже интерпретируемого), обрабатывать вставки на VBScript, JScript и т.д. WSH в отличие от него разработан исключительно для выполнения сценариев, из-за чего использует минимум памяти и времени процессора, так что теперь некоторые задачи, выполняемые ранее IE, можно переложить на WSH. Остается добавить, что данный сервер позволяет использовать как интерактивные, так и пакетные сценарии, такие, как сценарий входа в систему и сценарий администрирования.

Существует две версии сервера сценариев Windows: WScript.exe, позволяющая задавать параметры выполнения сценариев в окне свойств, и СScript.exe, позволяющая задавать те же параметры с помощью ключей командной строки. Одна из них является активной. Для изменения текущей версии сервера сценариев следует воспользоваться командой CScript или WScript с ключом //H:CScript (для консольного варианта) или //H:WScript (для GUI-версии, включено по умолчанию). Чтобы запустить необходимую версию, введите в командной строке WScript.exe или CScript.exe. Как легко догадаться, консольный вариант в первую очередь предназначен для выполнения пакетных заданий, а GUI — для интерактивных. Для просмотра доступных опций этих программ можно воспользоваться ключом /?. Запустить сценарий можно из командной строки, введя имя сервера и затем имя файла сценария, а также из Проводника по двойному щелчку левой кнопки мыши (контекстное меню по нажатию правой кнопки мыши будет меняться в зависимости от активной версии сервера сценариев).
Для разработки сценариев следует использовать специализированные редакторы с подсветкой синтаксиса, а еще лучше — какую-нибудь из сред разработки со встроенным отладчиком, однако никто не запрещает написать текст сценария в обычном блокноте. При запуске сценария из Проводника или из командной строки WSH читает и передает содержимое указанного файла зарегистрированному обработчику сценариев. Вместо тега SCRIPT (применяется в HTML) для определения языка сценария используется расширение имени файла (.vbs для VBScript, .js — для JScript). Благодаря этому разработчик сценария не обязан знать точные программные идентификаторы (ProgID) различных обработчиков сценариев.

Как и большинство программ под Windows, WSH является объектно-ориентированным средством. Объектная модель сервера сценариев направлена на использование при решении административных задач. Набор COM-интерфейсов модели можно разделить на две основные категории:
• Выполнение сценариев и устранение неполадок (свойства и методы, непосредственно относящиеся к выполнению сценариев. Они позволяют управлять объектом сервера сценариев, выводить на экран сообщения и выполнять основные COM-функции).
• Вспомогательные функции (свойства и методы выполнения действий, таких, как подключение сетевого диска, установка принтера, создание и изменение переменных среды, а также работа с разделами реестра).
Более подробно об имеющихся объектах можно прочитать в справке Windows. Кроме объектного интерфейса, есть возможность использования любых элементов ActiveX, предоставляющих соответствующие интерфейсы. Например, можно создавать сценарии для управления службами каталогов Active Directory.

WMI
Другой важный компонент облегчения администрирования — инструментарий управления Windows (Windows Management Instrumentation, WMI). Он представляет собой реализацию корпорацией Microsoft протокола WBEM (Web-Based Enterprise Mana-gement — управление предприятием на основе веб-технологий). Данный протокол описывает стандарты общего доступа по сети к данным управления предприятием. WMI обеспечивает встроенную поддержку модели CIM (Common Information Model — общая модель данных), которой должны соответствовать объекты среды управления. Другими словами, мы получаем в актив универсальный способ управления системой (как программной частью, так и аппаратной), используя по необходимости удаленное администрирование по сети.
WMI включает в себя CIM-совместимую базу данных, в которой хранятся определения объектов, и диспетчер объектов CIM, который отвечает за занесение объектов в хранилище и управление ими, а также за сбор данных от поставщиков WMI. Поставщики WMI играют роль посредников между WMI и компонентами операционной системы, приложениями и другими системами. Например, поставщик реестра получает данные из реестра. Поставщики также предоставляют методы, с помощью которых можно управлять компонентами, свойства, которые могут быть изменены, и события, информирующие об изменениях, происходящих в компонентах.
WMI применяется во многих продуктах Microsoft, особенно серверных. Данная технология может использоваться в различных средствах управления компьютером от сторонних производителей. Ее также можно применять вместе с системами программирования (что и делается: WSH+WMI — друзья навеки) для получения сведений о конфигурации систем и последующего ее (конфигурации) изменения. К слову, WMI поддерживается такими встроенными в Windows средствами управления, как Свойства системы, Сведения о системе и Зависимости (оснастка Службы). О подобных средствах мы сейчас и поговорим.
Оснастка Элемент управления WMI, доступная из оснастки Управление компьютером (можно просто ввести wmimgmt.msc в консоли), позволяет настраивать параметры WMI на удаленном или локальном компьютере. С ее помощью можно задавать разрешения для прошедших проверку пользователей и групп, включать или выключать запись журнала ошибок, создавать резервные копии хранилища WMI или выполнять другие задачи по настройке (см. рис.1).



Программа WBEMTest служит тестером WMI. Она предназначена для просмотра и изменения классов, экземпляров и методов CIM при разработке поставщиков и приложений WMI. WBEMTest можно также использовать при устранении неполадок подсистемы WMI или зависящих от нее программ (см. рис. 2).



Существует также консольная утилита WMIC (WMI Command-line), предоставляющая простой интерфейс командной строки для работы с подсистемой WMI. WMIC взаимодействует с существующими оболочками и служебными программами, а также может быть легко расширена с помощью сценариев или других административных приложений. Она позволяет выполнять следующие задачи:
• просматривать схемы WMI и запрашивать их классы и экземпляры (обычно с использованием псевдонимов, упрощающих работу с WMI);
• работать с локальным компьютером, удаленными компьютерами (наличие WMIC на удаленно управляемом компьютере необязательно) или выполнять команды сразу для нескольких компьютеров;
• настраивать псевдонимы и форматы вывода в соответствии с имеющимися потребностями (псевдонимы могут использоваться для переименования классов, свойств и методов, а также для форматирования свойств с целью последующего вывода; форматы вывода могут включать значения свойств или предоставлять необходимые шаблоны для оформления данных).
• создавать и выполнять сценарии на основе WMIC.

Как видите, довольно богатые возможности. К тому же, последний пункт позволяет автоматизировать работу администратора, хотя в таких случаях лучше воспользоваться связкой WSH+WMI. Думаю, на этом остановимся.
Надеюсь, данный обзор (а это именно обзор) натолкнет читателя на более углубленное изучение рассмотренной темы.
Напоследок замечу, что основная часть программной реализации WMI (WBEM) находится в папке %System Root%\system32\wbem, а подпапка Repository с объектами WMI исправно сохраняется в каталоге System Volume Infor-mation средством Восстановление системы (только в XP) для последующего отката системы в случае краха. Это говорит о важности WMI в глазах Microsoft.
В данной статье использовалась справка Windows XP, за что огромное спасибо ее авторам.
Еще увидимся.

Creator, creator_vom@tut.by


Компьютерная газета. Статья была опубликована в номере 23 за 2003 год в рубрике soft :: win

©1997-2021 Компьютерная газета