Scriptomatic 2.0: к глубинам WMI

18 февраль, 2005 - 00:00Игорь Дериев Скриптинг -- весьма серьезный инструмент в умелых руках, и его качественная поддержка -- большой плюс для любой системы. Что касается Microsoft, то она традиционно уделяет самое пристальное внимание средствам автоматизации, а ее новейшие инициативы заслуживают наивысших оценок. Однако не следует думать, что написание сценария -- такое уж простое дело. Стандартные возможности Windows Scripting Host не слишком обширны, и при желании добиться хоть чуточку большего придется обращаться к COM, WMI и прочим технологиям, которые даже для элементарного понимания потребуют довольно тщательного изучения. Однако и здесь Microsoft охотно приходит на помощь не слишком подготовленным пользователям и сисадминам -- более года назад ("Компьютерное Обозрение", # 47, 2003) были обнародованы сразу несколько полезных утилит, призванных сделать скриптинг ближе к простым смертным. Одна из них -- Scriptomatic -- особо интересна, поскольку фактически представляет собой несложный генератор сценариев, предназначенный, в первую очередь, для освоения WMI.

Scriptomatic 2.0 к глубинам WMI
WMI CIM Studio -- для серьезных разработчиков
Scriptomatic 2.0 к глубинам WMI
Вот такие симпатичные отчеты можно получать с помощью новой версии Scriptomatic
Scriptomatic 2.0 к глубинам WMI
Новая версия Scriptomatic изобилует дополнительными возможностями
Откровенно говоря, сам по себе код, создаваемый Scriptomatic, действительно не слишком полезен, хотя его, конечно же, можно использовать в качестве шаблона для собственных разработок. Но как средство наглядного изучения возможностей WMI, доступного пространства имен, конкретных классов -- лучше, кажется, и придумать сложно. Достаточно сказать, что за год эту не бог весть какую утилиту загрузили более полумиллиона человек, и, очевидно, вряд ли среди них встречались пресловутые "домохозяйки". Однако нынешняя версия Scriptomatic 2.0, выпущенная Microsoft в канун нашего "старого" Нового года, имеет все шансы завоевать еще большую популярность.

Что же интересного предлагает группа разработчиков из Microsoft, именующая себя Scripting Guys? Прежде всего, теперь мы не ограничены только root\cimv2, программа автоматически считывает все официально зарегистрированные пространства имен и позволяет оперативно выбирать их из выпадающего списка. Более того, в качестве источника данной информации может выступать не только локальный, но и удаленный компьютер, естественно, при наличии у пользователя соответствующих полномочий.

Впрочем, для большинства практических задач ресурсов root\cimv2 более чем достаточно, и оценить данное нововведение по достоинству смогут лишь те, кто решил по-настоящему углубиться в дебри WMI. Для них, однако, существуют и гораздо более совершенные (но и более сложные в освоении) инструменты, часть из которых описана на странице msdn.microsoft.com/downloads/list/wmi.asp. В частности, WMI CIM Studio позволит досконально изучать любые объектные модели в любых доступных пространствах имен, для чего Scriptomatic попросту не предназначена.

Зато ряд других новшеств наверняка придется по душе тем, кто когда-либо имел дело со скриптингом. Если первая версия программы все свои примеры генерировала исключительно на VBScript, то в нынешней версии дополнительно доступны не только JScript (что вполне логично, поскольку данный язык поддерживается самой Microsoft), но также Perl и Python. Естественно, трансляторы с двух последних языков должны быть установлены в системе самим пользователем, хотя нужны они именно для исполнения сценариев. Кстати, поскольку Scriptomatic представляет собой так называемое HTML-приложение, код которого доступен для изучения и корректировки в любом текстовом редакторе, в документации даже содержатся инструкции, как сделать любой из поддерживаемых языков выбираемым по умолчанию (изначально в таком качестве выступает VBScript).

Несколько вариантов также предлагается и для вывода результатов исполнения скриптов, причем не только непосредственно сгенерированных Scriptomatic, -- формально пользователь может загрузить в окно программы любой сценарий. Главное условие -- использование конструкции WScript. Echo и "табличное" оформление (в качестве разделителя применяется пара символов из двоеточия и пробела). Сама по себе программа рассчитана на две колонки, но никто не мешает формировать и больше (либо, опять же, самостоятельно подправить код Scriptomatic). Таким образом, можно, скажем, организовать простенькую процедуру инвентаризации аппаратного и программного обеспечения, а собранную информацию сохранять в HTML, CVS (для беспроблемного импорта в Excel или другое приложение электронных таблиц) или даже в XML. Доступна, конечно же, и стандартная консоль, которая выбирается по умолчанию, но, вне сомнений, HTML-представление гораздо удобнее, да и просто читабельнее.

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

Таким образом, простая утилита уже ко второй версии превратилась в достаточно изощренный инструмент, предназначенный, конечно, в наибольшей мере для изучения "материальной части". Более же практические примеры применения скриптовых технологий стоит искать в разделе Script Center сайта Microsoft TechNet. На сегодня там собрано и рубрицировано более 2200 сценариев, в том числе и на некоторых "альтернативных" языках -- среди них имеются как полностью готовые решения типичных задач, так и реализации востребованных, но не слишком очевидных приемов, вроде построения GUI. Значение этого ресурса трудно преувеличить, особенно если учесть, что в значительной степени он формируется по реальным заявкам пользователей, к числу которых можете присоединиться и вы, если отправите свой запрос по адресу [email protected].