Компоненты Windows Script (WSC) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
Настройки WSH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
Создание своего первого файла сценария . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
Создание и защита папки сценариев . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
Создание сценария . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
Средства редактирования сценариев . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
Как Windows запускает сценарии . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
Wscript и Cscript . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
Способы запуска сценариев . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
Передача информации в сценарии . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
Сохранение результатов работы сценариев . . . . . . . . . . . . . . . . . . . . . . . . . . 52
Ключи Wscript и Cscript . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
Запуск своих собственных сценариев . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
Добавление указаний на сценарии в переменную PATH . . . . . . . . . . . . . . . . . 57
Запуск сценариев с помощью значка ярлыка . . . . . . . . . . . . . . . . . . . . . . . . . 59
Создание ярлыка сценария . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
Запуск сценариев из пакетных файлов . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
Автозапуск сценариев . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
Проблемы безопасности . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
Политика доверия и подписывание сценариев . . . . . . . . . . . . . . . . . . . . . . . 62
Отладка сценариев . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
Где можно получить дополнительную информацию . . . . . . . . . . . . . . . . . . . . . . 68
Глава 2. Руководство по VBScript . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
Введение в VBScript . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
Переменные . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
Константы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
Поименованные константы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
Операторы и выражения . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
Автоматическое преобразование . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
Управление ходом выполнения сценария . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
Оператор If . . . Then . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
Оператор Select Case . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
Цикл Do While . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
Прекращение выполнения цикла с помощью оператора Exit Do . . . . . . . . . . . 85
Вычисления с помощью оператора For…Next . . . . . . . . . . . . . . . . . . . . . . . . . 86
Обработка коллекций и массивов с помощью цикла For…Each . . . . . . . . . . . . 87
Функции VBScript . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
Вызов функций и подпрограмм . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
Документация и синтаксис . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
Функции работы со строками . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
Функции даты-времени . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
Взаимодействие с пользователем . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
Функция MsgBox() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
Функция InputBox() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
Вывод простых текстовых сообщений с помощью метода Wscript .Echo . . . . . 103
Более сложные темы, касающиеся VBScript . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
Обработка ошибок . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
Процедуры: функции и подпрограммы . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
Массивы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
Область видимости переменных . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
Дополнительные источники информации . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
Глава 3. Создание сценариев и работа с объектами . . . . . . . . . . . . . . . . . . . 113
Введение в объекты . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
Классы и экземпляры . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115
Контейнеры и коллекции . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115
Обозначение объектов . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117
Использование объектов в VBScript . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118
Автоматизация и файлы документов . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
Разница между свойствами и методами . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
Вложенные объекты . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
Освобождение объектов . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122
Работа с коллекциями . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122
Использование объектов при работе с JScript . . . . . . . . . . . . . . . . . . . . . . . . . . 124
Чувствительность к регистру символов . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124
Работа с коллекциями . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124
Использование объектов при работе с ActivePerl . . . . . . . . . . . . . . . . . . . . . . . . 126
Выполнение Perl-сценариев в WSH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126
Интерфейс с объектами, используемый в Perl . . . . . . . . . . . . . . . . . . . . . . . 127
Работа с коллекциями . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128
Использование объектов при работе с ActivePython . . . . . . . . . . . . . . . . . . . . . 129
Работа с коллекциями . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130
Использование объекта WScript . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131
Извлечение аргументов командной строки . . . . . . . . . . . . . . . . . . . . . . . . . 133
Поиск и использование необычных объектов . . . . . . . . . . . . . . . . . . . . . . . . . . 135
Глава 4. Доступ к файлам и реестру . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142
Получение практических результатов . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142
Работа с файлами и папками . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143
Scripting .FileSystemObject . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143
Объект Scripting .Drive . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155
Объект Scripting .Folder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159
Объект Scripting .File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165
Чтение и запись файлов . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170
Объект TextStream . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170
Чтение текста из файлов . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173
Запись текста в файлы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174
Работа со стандартным вводом (Stdin) и стандартным выводом (Stdout) . . . 180
Чтение двоичных файлов . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183
Чтение и запись XML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187
Некоторые основы XML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188
Чтение XML-файла . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197
Создание XML- или HTML-файла . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199
Работа с программами и ярлыками . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202
Объект WScript .Shell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202
Запуск программ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207
Создание и изменение ярлыков . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214
Работа со средой окружения . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217
Извлечение информации из среды окружения . . . . . . . . . . . . . . . . . . . . . . . 219
Управление установками среды окружения . . . . . . . . . . . . . . . . . . . . . . . . . 220
Работа с реестром . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223
Изучение разделов и параметров реестра . . . . . . . . . . . . . . . . . . . . . . . . . . 224
Сохранение информации в реестре . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224
Глава 5. Сетевые и принтерные объекты . . . . . . . . . . . . . . . . . . . . . . . . . . . . 228
Управление сетевыми и принтерными подключениями . . . . . . . . . . . . . . . . . . . 228
Извлечение сетевой пользовательской информации . . . . . . . . . . . . . . . . . . . . . 233
Управления отображениями на буквы дисков . . . . . . . . . . . . . . . . . . . . . . . . . . 236
Создание перечня дисковых отображений с помощью EnumNetworkDrives . . 236
Добавление дисковых отображений . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 240
Удаление дисковых отображений . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 241
Установка отображений в сценарии . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 243
Управление подключениями сетевых принтеров . . . . . . . . . . . . . . . . . . . . . . . . 244
Вывод информации о принтерах . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 244
Подключение к сетевым принтерам . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 246
Перенаправление принтеров из сеанса работы с DOS . . . . . . . . . . . . . . . . . 247
Удаление принтерных подключений . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 249
Установка принтера по умолчанию . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 251
Печать из сценариев . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 251
Глава 6. Объекты сообщений и факсов . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 254
Отправка из сценариев сообщений электронной почты с помощью CDO . . . . . . 254
Объектная модель CDO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 255
Объект CDO .Message . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 258
Работа с полями . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 265
Поля для объекта CDO .Message . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 267
Коллекция CDO BodyParts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 269
Объект CDO BodyPart . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 270
Объект ADO Stream . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 273
Объект CDO .Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 273
Отправка сообщений с помощью CDO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 279
Создание сообщения . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 280
Добавление вложений . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 284
Включение изображений в HTML-сообщение . . . . . . . . . . . . . . . . . . . . . . . . 285
Указание получателей и темы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 286
Указание сервера доставки . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 286
Отправка сообщения . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 288
Объединение всего предыдущего в единое целое . . . . . . . . . . . . . . . . . . . . 288
Отправка факсов из сценариев . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 293
Отправка факса с помощью сценария . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 297
Получение дополнительной информации об отправке факсов . . . . . . . . . . . 300
Глава 7. Инструментарий управления Windows . . . . . . . . . . . . . . . . . . . . . . . 301
Введение в инструментарий управления Windows . . . . . . . . . . . . . . . . . . . . . . . 301
Функции WMI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 302
Пространства имен . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 303
Удаленное управление Windows . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 305
Создание WMI-подключений . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 310
Иерархия объектов WMI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 311
Подключение с помощью объекта WbemScripting .SWbemLocator . . . . . . . . . 313
Подключение с помощью моникера . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 314
Подключение к локальному компьютеру . . . . . . . . . . . . . . . . . . . . . . . . . . . 316
Безопасность и аутентификация . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 316
Определение режимов безопасности . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 321
WMI-коллекции и запросы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 323
SWbemServices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 324
WQL-запросы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 326
SWbemObjectSet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 327
SWbemObject . . . . . . .