Введение Для кого предназначена эта книга Структура книги Принятые в книге соглашения Благодарности Глава 1 Первое знакомство с Windows Script Host Возможности технологии ActiveX Нумерация версий WSH Назначение и основные свойства WSH Создание и запуск простейших сценариев JScript и VBScript Запуск сценария из командной строки в консольном режиме Запуск сценария из командной строки в графическом режиме Запуск сценария с помощью меню Пуск Запуск сценария с помощью Проводника Windows (Windows Explorer) Установка и изменение свойств сценариев Свойства и параметры сценариев, выполняемых с помощью cscript.exe Свойства и параметры сценариев, выполняемых с помощью wscript.exe Стандартные объекты WSH5.6 Объект WScript Свойство Arguments Свойства StdErr, StdIn, StdOut Метод CreateObject Метод ConnectObject Метод DisconnectObject Метод Echo Метод Sleep Объекты-коллекции Объект WshArguments Объект WshNamed Объект WshUnnamed Объект WshEnvironment Объект WshSpecialFolders Работа с сетью и оболочкой Windows Объект WshNetwork Метод AddPrinterConnection Метод AddWindowsPrinterConnection Метод EnumNetworkDrives Метод EnumPrinterConnections Метод MapNetworkDrive Метод RemoveNetworkDrive Метод RemovePrinterConnection Метод SetDefaultPrinter Объект WshShell Метод АррActivate Метод CreateShortcut Метод Environment Метод ExpandEnvironmentString Метод LogEvent Метод Popup Метод RegDelete Метод RegRead Метод RegWrite Метод Run Метод SendKeys Работа с ярлыками Объект WshShortcut Свойство Arguments Свойство HotKey Свойство IconLocation Свойство WindowStyle Свойство WorkingDirectory Объект WshUrlShortcut Запуск процессов на локальной и удаленной машине Объект WshScriptExec Свойство ProcessID Свойство Status Свойства StdOut, StdIn и StdErr Объект WshController Объект WshRemote Объект WshRemoteError Глава 2 Примеры использования стандартных объектов WSH (JScript и VBScript) Вывод на экран текстовых строк Метод Echo объекта WScript Методы Write и WriteLine объекта WScript.StdOut Функция MsgBox языка VBScript Метод Popup объекта WshShell Ввод строк текста Ввод строк в консольном режиме Ввод строк в графическом режиме Получение свойств WSH и запущенного сценария Работа с параметрами командной строки сценария Выход из сценария с определенным кодом завершения Использование внешних объектов автоматизации (на Microsoft Word) Запуск из сценариев внешних программ Запуск приложений Windows Переключение между приложениями, имитация нажатий клавиш Запуск независимых консольных приложений и команд DOS Запуск дочерних консольных приложений и команд DOS, использование их входных и выходных потоков Доступ к специальным папкам Windows ХР Создание ярлыков в специальных папках Работа с системным реестром Windows Работа с ресурсами локальной сети Определение имен рабочей станции, пользователя и домена Получение списка подключенных сетевых дисков и принтеров Подключение и отключение сетевых дисков и принтеров Запуск сценариев на удаленных машинах. Контроль за ходом выполнения таких сценариев Глава 3 Сценарии WSH как приложения XML Основные принципы XML Схема WS XML Элементы WS-файла Элементы lt;?xml?gt; и lt;![CDATA[]]gt; Элемент lt;?job?gt; Элемент lt;packagegt; Элемент lt;jobgt; Элемент lt;runtimegt; Элемент lt;namedgt; Элемент lt;unnamedgt; Элемент lt;descriptiongt; Элемент lt;examplegt; Элемент lt;resourcegt; Элемент lt;objectgt; Элемент lt;referencegt; Элемент lt;scriptgt; Примеры сценариев с разметкой XML Строгий режим обработки WS-файла Несколько заданий в одном файле Использование констант внешних объектов Подключение внешних файлов Два языка внутри одного задания (использование функции InputBox языка VBScript в сценариях JScript) Глава 4 Безопасность при работе со сценариями WSH Шифрование сценариев Цифровая подпись для сценариев WSH Использование цифровых сертификатов в Windows Способы получения цифрового сертификата Создание собственного сертификата Управление сертификатами с помощью ММС Добавление к сценарию цифровой подписи Проверка цифровой подписи сценария Политики безопасности для сценариев WSH Параметры реестра, влияющие на политику безопасности для WSH Блокировка локальных и удаленных сценариев WSH. Пример административного шаблона Три режима выполнения сценариев WSH Протоколирование действий сценариев в журналах событий Применение к сценариям WSH политики ограниченного использования программ Блокировка сценария с заданным именем Блокировка сценариев с заданной подписью Глава 5 Доступ из сценариев к файловой системе Выполнение основных операций с файловой системой Объект FileSystemObject Методы CopyFile и CopyFolder Метод CreateTextFile Методы DeleteFile и DeleteFolder Метод DriveExists Метод GetAbsolutePathName Метод GetBaseName Метод GetDrive Метод GetParentFolderName Метод GetSpecialFolder Метод GetTempName Методы MoveFile и MoveFolder Метод OpenTextFile Объект Drive Коллекция Drives Объект Folder Метод Copy Метод Delete Метод Move Коллекция Folders Объект File Метод Copy Метод Delete Метод Move Метод OpenAsTextStream Коллекция Files Объект TextStream Примеры сценариев Отчет об использовании дискового пространства Удаление ненужных временных файлов с жесткого диска Поиск файлов с использованием регyлярных выражений Перемещение файлов с ведением журнала действий Разработка записной книжки в формате текстового файла Глава 6 Практическая работа с данными в XML-файлах Записная книжка в формате XML Просмотр XML-файла с помощью объектной модели Internet Explorer 4.0 Описание объектной модели Пример сценария Использование XML DOM для просмотра и изменения ХМL-файла Описание модели XML DOM Просмотр содержимого записной книжки Добавление информации в записную книжку Поиск и удаление записи из книжки Глава 7 Способы организации диалогового режима работы сценариев Многозадачный сценарий для работы с записной книжкой Обработка параметров командной строки Организация диалога с помощью кнопочного меню Однозадачный сценарий для работы с записной книжкой Использование Internet Explorer для создания диалоговых окон Разработка HTML-формы для диалогового окна Создание объекта для обмена данными между XML-файлом и формой Вывод формы из сценария WSH Обработка событий, генерируемых элементами управления формы Окончательная доработка сценария IEPhoneBook.js Глава 8 Взаимодействие сценариев с Microsoft Office Объектные модели Microsoft Word и Excel Вывод данных из записной книжки в документ Microsoft Word Вывод записей в виде обычного текста Вывод записей в таблицу Вывод данных из записной книжки в таблицу Microsoft Excel Глава 9 Использование в сценариях баз данных Создание таблицы Phone.dbf в Microsoft Access Настройка источника данных ODBC Примеры сценариев Копирование данных из XML-файла в таблицу БД Просмотр записей в таблице Получение информации о полях и записях таблицы Сортировка записей в таблице Фильтрация записей в таблице Перемещение в наборе записей Доступ к БД без создания DSN Глава 10 Разработка СОМ-объектов с помощью языков сценариев Технология Windows Script Components Схема WSC XML Элементы WSC-файла Элементы lt;?xml?gt; и lt;![CDATA[]]gt; Элемент lt;package gt; Элемент lt;componentgt; Элемент lt;registrationgt; Элемент lt;publicgt; Элемент lt;propertygt; Элемент lt;methodgt; Элемент lt;eventgt; Элементы lt;resourcegt; , lt;objectgt; и lt;referencegt; Элемент lt;scriptgt; Пример: СОМ-объект для архивирования файлов Создание макета файла DateArc.wsc с помощью Windows Script Component Wizard (JScript) Доработка объекта-сценария DateArc.wsc (JScript) Регистрация файла DateArc.wsc в качестве СОМ-объекта Реализация объекта DateArc.wsc на VBScript Глава 11 Применение сценариев WSH для администрирования Windows ХР Использование службы каталогов Active Directory Service Interface (ADSI) Связывание с нужным объектом каталога Список всех доступных доменов в локальной сети Создание пользователя и группы на рабочей станции Вывод информации о пользователе и смена его пароля Удаление пользователя и группы на рабочей станции Список всех групп на рабочей станции Список всех пользователей в группе Список всех групп, в которые входит пользователь Создание сценариев включения/выключения и входа/выхода Сценарии, выполняемые при загрузке операционной системы Сценарии, выполняемые при завершении работы операционной системы Сценарии входа для всех локальных пользователей Сценарий выхода для всех локальных пользователей Сценарий входа для одного пользователя Примеры сценариев входа/выхода Подключение сетевых дисков и синхронизация времени при регистрации пользователей Интерактивный выбор программ автозагрузки Резервное копирование документов пользователя при окончании сеанса работы Вызов системных функций и стандартных диалоговых окон оболочки Windows Вызов модулей панели управления Запуск с помощью оболочки Windows Запуск с помощью системных функций Windows Открытие папки в Проводнике Windows Вызов окна форматирования диска Вызов окна запуска программ Блокировка рабочей станции Вызов окна выключения компьютера Использование технологии Windows Management Instrumentation (WMI) Доступ к свойствам файла Список всех запущенных процессов Закрытие всех экземпляров запущенного приложения Заключение Приложение 1 Справочник по языку JScript Строки кода и комментарии Переменные Типы данных Числа Текстовые строки Объекты Логические данные Null (пустой тип) и undefined (неопределенный тип) Преобразование типов данных Операторы Унарные операторы Бинарные операторы Операторы побитовых логических операций и сдвига Операторы присваивания Операторы отношения Условные операторы Операторы циклов Цикл for Цикл for…in Цикл while Цикл do…while Оператор break Оператор continue Прочие операторы Обработка исключительных ситуаций Порядок выполнения операторов Функции Встроенные функции Функции пользователя Встроенные объекты (классы) Объект Array Объект Date Объект Enumerator Объект Math Объект String Приложение 2 Справочник по языку VBScript Строки кода и комментарии Переменные Подтипы данных Константы Массивы Операторы Арифметические операторы Операторы отношения и логические операторы Условные операторы Операторы циклов Цикл For…Next Цикл For Each…Next Цикл While…Wend Цикл Do…Loop Прочие операторы Обработка исключительных ситуаций Процедуры и функции Математические функции Символьные функции Функции для работы с массивами Функции для работы с подтипами данных Прочие функции Функции и процедуры пользователя Приложение 3 Средства разработки и отладки сценариев Создание и редактирование сценариев Редактор Primalscript Создание нового одиночного сценария Открытие существующего одиночного сценария Создание нового WS-файла Открытие существующего WS-файла Редактирование WS-файла на панели Workspace Nexus Запуск одиночного сценария Запуск задания из WS-файла Подписывание сценариев Возможности пользовательского интерфейса Другие редакторы Отладка сценариев в Microsoft Script Debugger Активизация отладчика Команды отладчика Установка и удаление точек прерывания Выполнение сценария Просмотр стека вызовов Просмотр и изменение значений переменных Приложение 4 Ошибки выполнения сценариев в WSH Приложение 5 Описание прилагаемой дискеты Источники информации Список литературы Ссылки на ресурсы Internet Журналы и статьи Сайты компании Microsoft Зарубежные сайты Российские сайты
Введение Несколько лет назад компания 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 ХР.