Скриптинг без программирования

2 декабрь, 2003 - 00:00Игорь Дериев Оскриптинге в Windows можно писать много -- тема практическая, разноплановая и потому вызывающая неизменный интерес. Ограничения стандартного командного процессора и bat-файлов были понятны с самого начала (хотя и с их помощью можно проделывать весьма нетривиальные трюки), потому Microsoft регулярно выпускала различные утилиты, призванные решать частные и специфические задачи. К таковым, скажем, относилась программа scriptit, информация о которой (но не она сама) все еще находится на сайте Microsoft. Конечно, свято место пусто не бывает, поэтому появлялись и сторонние разработки вроде Kixtart и WinBatch, порой весьма оригинальные и даже сохранившие немалую популярность по сей день.

Скриптинг без программирования
Базу данных для Tweakomatic можно пополнять новыми параметрами, например, в Access, после этого они немедленно окажутся доступными в самой программе
Скриптинг без программирования
Ситуация вроде бы разрешилась окончательно и бесповоротно с появлением WSH и особенно WMI (оставим в стороне ADSI как исключительно серверную технологию). Действительно, средствами "чистого" Windows Scripting Host удается выполнить далеко не все задачи (простой пример -- чтение целого раздела реестра), а применение дополнительных COM-объектов лишает решение универсальности, а технологию -- самодостаточности. Зато WMI, фактически "пронизывающая" всю начинку ОС, позволяет получать самую потаенную информацию и управлять буквально каждым аспектом функционирования системы, причем как локальной, так и удаленной. Беда лишь в том, что вопреки идеологической простоте и WSH, и WMI все же требуют относительно серьезного изучения -- для применения даже VBScript необходимы кое-какие программистские навыки, а в дебрях WMI впору запутаться даже бывалому сисадмину.

Однако Microsoft, вероятно, очень трепетно относится к своим скриптовым технологиям и потому предоставляет всем желающим огромное количество разнообразных ресурсов -- документация, статьи, вспомогательные инструменты. Среди последних наметилась интересная тенденция, и с ней мы решили чуть подробнее познакомить наших читателей. Речь идет о программах-генераторах сценариев, которых в арсенале компании уже три. Безусловно, термин "генератор" в данном случае звучит несколько претенциозно, так как ни одна из этих утилит не сможет "по щучьему велению, по вашему хотению" решить сколько-нибудь сложную конкретную задачу. Основное их назначение все же образовательное, т. е. они призваны дать сисадмину почувствовать мощь и гибкость указанных технологий и обеспечить его первыми навыками и, быть может, кое-какими шаблонами и заготовками.

Первой появилась программа Scriptomatic. Формально она совершенно проста -- пользователь выбирает любой WMI-класс из предоставленного списка (на самом деле в нем перечислены не все доступные классы, но те, что есть, по мнению разработчиков, покрывают около 98% практических нужд), и для него автоматически генерируется скрипт для отображения значений различных свойств. Таким образом, можно познакомиться с имеющимся арсеналом средств WMI, выяснить, какого рода информацию удастся получить с их помощью, создать несколько шаблонов-заготовок. Следует также отметить, что каждый сценарий работает как на локальной системе, так и на удаленной -- достаточно лишь в строке

strComputer = "."

точку заменить реальным сетевым именем компьютера, а незначительная доработка скрипта позволит вводить данный атрибут из командной строки либо уже во время выполнения. Как обычно, для работы по сети необходимо обладать правами администратора на обслуживаемых компьютерах.

Хотя в начале статьи ADSI было предложено оставить в стороне, все же невозможно не упомянуть второй инструмент -- ADSI Scriptomatic. Как понятно из названия, эта программа позволяет выполнять различные операции с Active Directory (конечно, эта служба должна быть уже развернута) -- заводить и уничтожать учетные записи, компьютеры, группы, настраивать их свойства, получать разнообразную информацию о доступных объектах. Безусловно, реальный домен -- не лучшее место для экспериментов, хотя сценарии генерируются максимально стандартные и дружественные. Поэтому администратор должен четко понимать все происходящее и внимательно читать все подсказки и комментарии.

Третий инструмент -- Tweakomatic -- появился совсем недавно и от своих предшественников отличается большей практической направленностью. Разработчики сравнивают данную программу с известной утилитой TweakUI, только реализованной не средствами GUI, а в виде сценариев. Именно это и обеспечивает дополнительную гибкость -- можно собрать необходимые настройки в один скрипт и оперативно растиражировать их по рабочим станциям. Разумеется, для подобных задач существуют и другие механизмы, например групповые политики, но каждый инструмент имеет свои плюсы и минусы. Любопытно также, что Tweakomatic явно предполагает дальнейшее совершенствование и расширение. Все известные программе параметры на самом деле извлекаются из обычной (совершенно простенькой) базы данных Access. Соответственно, разработчикам ничего не стоит дополнить ее новой информацией, более того, никто не мешает заняться этим делом и самим пользователям. В настоящее время Tweakomatic позволяет управлять настройками Internet Explorer, зонами безопасности, некоторыми аспектами интерфейса Windows. Программой автоматически генерируются два сценария -- для просмотра и установки значений выбранных параметров. Более того, можно создать мастер-скрипты и постепенно накапливать в них необходимые фрагменты кода. Специальная кнопка также позволяет заранее установить имя удаленного компьютера.

Все три упомянутые программы интересны и сами по себе. Дело в том, что реализованы они исключительно скриптовыми технологиями и фактически представляют собой специальные HTML-страницы, т. е. пользовательский интерфейс (как известно, стандартными средствами WSH его организовать невозможно) "рисует" Internet Explorer, а функциональность обеспечивается обычными скриптами. Все вместе называется HTA -- HTML Applications. Так что познакомиться с ними полезно хотя бы как с довольно интересными примерами применения данной технологии. Для этого достаточно посетить раздел Script Center сайта Microsoft TechNet. Обратите внимание, что это все-таки не MSDN -- не боги горшки обжигают. Здесь же содержится и огромное количество других полезных ресурсов, в том числе готовых сценариев практически на все случаи жизни, руководств и т. д.