Продолжая использовать наш сайт, вы даете согласие на обработку файлов cookie, которые обеспечивают правильную работу сайта. Благодаря им мы улучшаем сайт!
Принять и закрыть

Читать, слущать книги онлайн бесплатно!

Электронная Литература.

Бесплатная онлайн библиотека.

Читать: Windows Script Host для Windows 2000/XP - Андрей Владимирович Попов на бесплатной онлайн библиотеке Э-Лит


Помоги проекту - поделись книгой:

Введение

Несколько лет назад компания Microsoft предложила в качестве инструмента разработки и выполнения специальных сценариев для операционной системы Windows сервер сценариев Windows Script Host (WSH), различные версии которого входят в стандартную поставку Windows 98/2000/ХР (до этого на уровне операционной системы поддерживались только пришедшие из MS-DOS командные файлы). Сценарии WSH могут создаваться с помощью специализированных языков (например, Microsoft Visual Basic Script Edition (VBScript) или Microsoft JScript) и использовать любые объекты ActiveX, зарегистрированные в системе, что и определяет чрезвычайно мощные возможности таких сценариев.

Собственная объектная модель WSH позволяет из сценариев работать с файловой системой, системным реестром, специальными папками и ярлыками Windows, ресурсами локальной сети, а также запускать процессы и контролировать ход их выполнения.

Еще одна важная задача, которую решают сценарии WSH, — это организация взаимодействия с разработанными Microsoft современными ActiveX- технологиями:

□ ActiveX Data Object (ADO) — доступ к базам данных разных форматов;

□ Active Directory Service Interface (ADSI) — работа со службами каталогов (Active Directory для Windows 2000, Windows Directory Service для Windows NT 4.0 и т.д.);

□ Windows Management Instrumentation (WMI) — управление операционной системой Windows.

Надо сказать, что в то время как за рубежом сценариям WSH и используемым в них ActiveX-технологиям Microsoft посвящено много серьезных и объемных книг [10, 20–28], на русском языке подобных специальных книг пока немного (переводы книг Г. Борна [3] и Т. Экка [18], а также предыдущая книга автора [8]). В последнее время, правда, появилось довольно много публикаций о WSH, ADSI и WMI в журналах [1, 2, 6, 7, 9–16, 29]; краткое описание WSH и примеры сценариев приводятся в некоторых книгах, посвященных Windows 2000/ХР (например, в [5] имеются примеры работы с системным реестром). Отметим также, что в последней версии WSH 5.6, которая является неотъемлемой частью Windows ХР, появились новые возможности (запуск сценариев на удаленных машинах, использование для сценариев политики ограниченного использования программ и т.д.), описания которых в русскоязычной литературе на момент написания книги автору не встречалось.

Итак, целью настоящей книги является решение следующих задач.

□ Детально описать объектные модели, использующиеся в WSH 5.6 и в технологии Windows Script Components (WSC), и дать примеры использования этих объектных моделей.

□ Привести практические примеры применения в сценариях WSH технологий ADO, ADSI и WMI, а также показать, каким образом из сценариев можно просматривать или изменять файлы в формате XML и управлять приложениями пакета Microsoft Office.

□ Обсудить проблемы безопасности, возникающие при работе с WSH, и описать способы решения этих проблем в Windows ХР.

Для кого предназначена эта книга 

Книга может быть полезна пользователям, программистам и администраторам Windows, которые желают получить систематизированную информацию о мощных возможностях ActiveX-сценариев WSH 5.6, а также об использовании в сценариях смежных технологий Microsoft (WMI, ADSI, ADO, WSC).

Информация, представленная в книге, позволяет применять ее и в качестве последовательного руководства по разработке сценариев Windows различной степени сложности (от простых JScript- или VBScript-сценариев, работающих без какого-либо вывода на экран, до многозадачных WS-файлов с XML-разметкой, предоставляющих пользователю полноценный графический интерфейс), и как справочник по объектам и XML-элементам, которые используются в WSH 5.6 (в том числе и для создания СОМ-объектов по технологии WSC).

Многие сценарии, приведенные в книге, могут применяться практически без изменений для решения конкретных практических задач по администрированию Windows (особенно это относится к примерам главы 11). Кроме этого, сведения, которые приведены в главе 4, помогут администраторам настроить политику безопасности для работы со сценариями WSH.

При изучении материала книги от читателя может потребоваться некоторое знакомство с языками JScript и VBScript (краткие справочники по этим языкам включены в приложения), а также понимание основ объектно-ориентированного программирования и СОМ-технологий.

Структура книги

В главе 1 приводятся начальные сведения о назначении и возможностях WSH. Здесь показан процесс создания и запуска простейших сценариев на языках VBScript и JScript. Основная часть главы 1 посвящена рассмотрению собственных объектов WSH. Подробно описаны свойства и методы этих объектов, с помощью которых в сценариях можно:

□ использовать внешние объекты ActiveX и ресурсы локальной сети;

□ выводить информацию в стандартный выходной поток или в окно Windows;

□ считывать данные из стандартного входного потока;

□ получать доступ к специальным папкам Windows и системному реестру;

□ создавать или изменять переменные среды и ярлыки Windows;

□ запускать процессы на локальной или удаленной рабочей станции.

В главе 2 рассмотрены примеры сценариев, в которых используются стандартные объекты WSH (каждый из примеров реализован как на языке JScript, так и на языке VBScript). Среди прочих задач здесь освещены такие новые возможности WSH 5.6, как использование входных и выходных потоков дочерних приложений и контроль за ходом выполнения сценариев, запущенных на удаленном компьютере.

Глава 3 посвящена рассмотрению многозадачных сценариев WSH с разметкой XML. Здесь подробно описана объектная схема WS XML и приведены примеры сценариев, реализующих такие возможности этой схемы, как применение разных языков в одном задании или использование констант из библиотек типов внешних объектов.

В главе 4 обсуждаются вопросы безопасности, возникающие при работе со сценариями WSH (незащищенность исходного кода сценария, простота написания и распространения сценариев-вирусов и т.д.). В этой главе описано, каким образом можно создавать зашифрованные файлы сценариев и добавлять к сценариям цифровые подписи для указания автора сценария. Кроме этого, рассмотрен процесс организации политик безопасности для сценариев WSH, позволяющих, например, запретить выполнение неподписанных сценариев любого типа или вообще заблокировать WSH для определенных пользователей.

В главе 5 показано, каким образом можно получить полный доступ к файловой системе компьютера с помощью объекта FileSystemObject. Здесь объяснено, какие свойства и методы нужно использовать для выполнения тех или иных файловых операций, а также приведено подробное описание этих свойств и методов. Также в этой главе приведены несколько полезных сценариев, позволяющих, например, производить поиск нужных файлов с использованием регулярных выражений или перемещать файлы из одного каталога в другой с ведением журнала действий.

В главе 6 рассматриваются практические вопросы обработки из сценариев файлов в формате XML. В качестве примера здесь используется записная книжка, содержимое которой хранится в XML-файле. Приведенные в этой главе сценарии позволяют с помощью объектной модели XML DOM просматривать и изменять содержимое записной книжки.

В главе 7 обсуждаются вопросы организации из сценариев диалога с пользователем, начиная от простого использования параметров командной строки и заканчивая созданием полноценного пользовательского интерфейса с помощью HTML-форм. Все рассматриваемые здесь сценарии предназначены для работы с записной книжкой в формате XML.

В главе 8 показано, как из сценариев WSH организовать управление двумя самыми распространенными программами из пакета Microsoft Office: Word и Excel. Приведенные здесь сценарии позволяют организовать вывод информации из записной книжки в документ Word или таблицу Excel.

В главе 9 рассматривается технология ADO, позволяющая работать из сценариев с базами данных различных форматов. Приведены примеры сценариев, с помощью которых можно просматривать и изменять записи в таблице DBF, содержимое которой переносится (также с помощью сценария) из записной книжки в XML-файле.

В главе 10 обсуждается технология Windows Script Components (WSC), с помощью которой можно WSH-сценарии "упаковывать" в СОМ-объекты. Здесь описана объектная схема WSC XML и подробно рассмотрен процесс создания объекта-сценария, предназначенного для архивирования содержимого каталога в файлы с определенным именем.

В главе 11 рассмотрены примеры сценариев, которые позволяют автоматизировать некоторые повседневные задачи администратора компьютерной системы (например, работу "с учетными записями пользователей, создание сценариев входа/выхода или настройку параметров операционной системы на нескольких рабочих станциях в сети). Для этого используются еще две мощные технологии Microsoft, ADSI и WMI, возможности и основные принципы которых также описаны в этой главе.

В приложениях 1–4 приведены справочники по языкам JScript и VBScript, дано описание специальных редакторов и отладчиков для сценариев (в частности, подробно рассмотрен мощный редактор Primalscript), а также указан список ошибок (с пояснениями), которые могут возникать при выполнении сценариев WSH 5.6.

Примеры сценариев, которые приведены в книге, можно набирать вручную или загружать с прилагаемой дискеты. Структура дискеты и инструкции по ее использованию приведены в приложении 5.

Принятые в книге соглашения

При описании операторов, функций и методов объектов мы использовали стандартные соглашения. Названия параметров и аргументов набраны курсивом, необязательные параметры заключены в квадратные скобки [], например:

CreateObject(strProgID [,strPrefix])

Если при вызове команды может быть указан только один параметр/аргумент из нескольких возможных, то такие параметры/аргументы разделены знаком |, например:

<?job debug="true|false"?>

Благодарности

Я благодарю всех сотрудников издательства "БХВ-Петербург", в особенности Анатолия Николаевича Адаменко и Петра Анатольевича Науменко за их вклад в редактирование плана и текста книги, а также других людей, помогавших мне во время работы над книгой.

Особую признательность я хочу выразить Эдуарду Батаршину и Евгению Шикину за их ценные консультации и предложения.

Спасибо моей жене Татьяне и другим родственникам за их терпение и поддержку во всем. 

Глава 1

Первое знакомство с Windows Script Host

В ранних версиях Windows стандартным средством для автоматизации однотипных повторяющихся задач служили командные (пакетные) файлы и утилиты пакета Resource Kit для соответствующей версии. Однако даже с помощью имеющегося в Windows NT/2000/XP усовершенствованного командного интерпретатора cmd.exe трудно написать какую-либо сложную программу-сценарий (script): отсутствует полноценная интерактивность, нельзя напрямую работать с рабочим столом Windows и системным реестром и т.д.

Для исправления этой ситуации компанией Microsoft был разработан сервер сценариев WSH — Windows Script Host, с помощью которого можно выполнять сценарии, написанные, в принципе, на любом языке (при условии, что для этого языка установлен соответствующий модуль (scripting engine), поддерживающий технологию ActiveX Scripting). В качестве стандартных языков поддерживаются Visual Basic Script Edition (VBScript) и JScript.

Вообще говоря, принцип работы сценариев, поддерживаемых WSH, состоит в использовании объектов ActiveX, поэтому вначале мы очень кратко опишем возможности самой технологии ActiveX компании Microsoft.

Возможности технологии ActiveX

Напомним, что в Windows с самого начала для обеспечения обмена данными между приложениями была разработана технология связывания и внедрения объектов (OLE, Object Linking and Embedding). Вначале технология OLE использовалась для создания составных документов, а затем для решения более общей задачи — предоставления приложениями друг другу собственных функций (служб) и правильного использования этих функций. Технология, позволяющая одному приложению (клиенту автоматизации), вызывать функции другого приложения (сервера автоматизации), была названа OLE Automation. В основе OLE и OLE Automation лежит разработанная Microsoft базовая "компонентная" технология COM (Component Object Model). 

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

В настоящее время, по заявлению Microsoft, термин OLE используется только по историческим причинам. Вместо него Microsoft с 1996 года применяет новый термин — ActiveX, первоначально обозначавший WWW (World Wide Web) компоненты (объекты), созданные на базе технологии СОМ.

Технология ActiveX до последнего времени являлась ключевой в продуктах Microsoft. Наиболее полное воплощение она нашла в программах Microsoft Office, Internet Explorer, IIS (Internet Information Service). В эти продукты для управления соответствующими объектами автоматизации были встроены интерпретаторы специальных языков сценариев: VBScript (используется в Microsoft Office, Internet Explorer, IIS) и JScript (используется в Internet Explorer, IIS). Однако непосредственно в операционной системе, вне этих продуктов, выполнять сценарии, написанные на VBScript или JScript, было нельзя.

Сервер сценариев WSH является мощным инструментом, предоставляющим единый интерфейс (объектную модель) для специализированных языков (VBScript, JScript, PerlScript, REXX, TCL, Python и т.п.), которые, в свою очередь, позволяют использовать любые внешние объекты ActiveX. С помощью WSH сценарии могут быть выполнены непосредственно в операционной системе Windows, без встраивания в HTML-страницы.

Нумерация версий WSH

Скажем несколько слов относительно нумерации версий WSH. Самая первая версия WSH, входившая в качестве стандартного компонента в Windows 98, имела номер 1.0. С другой стороны, эта версия опиралась на языки сценариев JScript и VBScript версии 5.0, которые поддерживались Internet Explorer 5.0, поэтому можно к самой первой версии WSH относиться и как к WSH 5.0. Следующей версии WSH, входившей в поставку Windows 2000, был присвоен номер 2.0; в этой версии использовались языки JScript и VBScript версии 5.1. Наконец, номер последней версии WSH, являющейся неотъемлемой частью Windows ХР, компания Microsoft решила все же привязать к номеру версии языков JScript и VBScript — таким образом появился сервер сценариев WSH 5.6.

Отметим также, что даже сама аббревиатура "WSH" сначала расшифровывалась Microsoft как "Windows Scripting Host", а затем было принято название "Windows Script Host".

Замечание

Несмотря на то, что WSH 5.6 является стандартной частью Windows ХР, эту версию можно также установить и использовать во всех предыдущих 32-разрядных версиях Windows 95/98/ME/NT/2000. Для этого необходимо скачать инсталляционный файл для WSH 5.6 с сервера Microsoft (http://msdn.microsoft.com/scripting); там же можно найти и документацию по WSH 5.6.

Назначение и основные свойства WSH

WSH предъявляет минимальные требования к объему оперативной памяти и является очень удобным инструментом для автоматизации повседневных задач пользователей и администраторов операционной системы Windows. Используя сценарии WSH, можно непосредственно работать с файловой системой компьютера, а также управлять работой других приложений (серверов автоматизации). При этом возможности сценариев ограничены только средствами, которые предоставляют доступные серверы автоматизации.

Перечислим только наиболее очевидные задачи, для автоматизации которых прекрасно подходят сценарии WSH.

□ Организация резервного копирования на сетевой сервер файлов с локальной машины, которые отбираются по какому-либо критерию.

□ Быстрое изменение конфигурации рабочего стола Windows в зависимости от задач, выполняемых пользователем.

□ Автоматический запуск программ Microsoft Office, создание там сложных составных документов, распечатка этих документов и закрытие приложений.

□ Управление работой приложений, не являющихся серверами автоматизации, с помощью посылки в эти приложения нажатий клавиш.

□ Подключение и отключение сетевых ресурсов (дисков и принтеров).

□ Создание сложных сценариев регистрации для пользователей.

□ Выполнение задач администрирования локальной сети (например, добавление или удаление пользователей).

Создание и запуск простейших сценариев JScript и VBScript

Простейший WSH-сценарий, написанный на языке JScript или VBScript, — это обычный текстовый файл с расширением js или vbs соответственно, создать его можно в любом текстовом редакторе, способном сохранять документы в формате "Только текст".

Замечание

Специальные мощные программы, позволяющие создавать и отлаживать сценарии, описаны в приложении 3.

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

В качестве первого примера создадим JScript-сценарий, выводящий на экран диалоговое окно с надписью "Привет!" (рис. 1.1). 


Рис. 1.1. Простое диалоговое окно

Для вывода такого окна достаточно с помощью, например, стандартного Блокнота Windows (notepad.exe) создать файл First.js, содержащий всего одну строку:

WScript.Echo("Привет!");

Тот же самый сценарий на языке VBScript, естественно, отличается синтаксисом и выглядит следующим образом:

WScript.Echo "Привет!"

Несмотря на то, что для работы наших сценариев достаточно всего одной строки, желательно сразу приучить себя к добавлению в начало файла информации о находящемся в нем сценарии: имя файла, используемый язык, краткое описание выполняемых действий. На языке JScript такая информация, оформленная в вице комментариев, может выглядеть следующим образом:

/*******************************************************************/

/* Имя: First.js                                                   */

/* Язык: JScript                                                   */

/* Описание: ВЫВОД на экран приветствия                            */

/*******************************************************************/


Рис. 1.2. Сценарий First.js

На языке VBScript то же самое выглядит следующим образом:

'*******************************************************************

' Имя: First.vbs

' Язык: VBScript

' Описание: Вывод на экран приветствия

'*******************************************************************

Для запуска сценариев WSH существует несколько способов.

Запуск сценария из командной строки в консольном режиме

Можно выполнить сценарий из командной строки с помощью консольной версии WSH cscript.exe. Например, чтобы запустить сценарий, записанный в файле C:\Script\First.js, нужно загрузить командное окно и выполнить в нем команду



Поделиться книгой:

На главную
Назад