WSH vs SH
Применение Windows Script Hosting и оболочки sh для задач управления системой на примере скриптов добавления списка пользователей
WSH
Windows Script Host (WSH; первоначально назывался Windows Scripting Host, был переименован ко второму выпуску) — компонент Microsoft Windows, предназначенный для запуска сценариев на скриптовых языках JScript и VBScript, а также и на других дополнительно устанавливаемых языках (например, Perl) [1].
Возможности сценариев на WSH значительно превосходят возможности командных .bat и .cmd-файлов: имеются полноценные языки с объектными возможностями, полный набор операций со строками, включая регулярные выражения, взаимодействие с любыми программами, реализующими объектный скриптовый интерфейс (Active Scripting или OLE Automation), доступ к методам и свойствам их объектов; операции с файлами и каталогами, обработка текстовых файлов, манипуляции с системным реестром и т. п.
Сценарии из .js, .vbs, .wsf и некоторых других типов файлов запускаются с помощью одной из двух программ-активаторов: wscript.exe (с графическим интерфейсом) или cscript.exe (с консольным интерфейсом).
Самые первые версии WSH поставлялись в виде отдельного компонента, опционально устанавливаемого в Windows, но уже начиная с Windows 98 WSH стал частью всех ОС Windows.
Для того, чтобы воспользоваться всеми возможностями, которые представляет эта технология, нужно хорошенько разобраться в ее структуре. Windows Script Host состоит из 14 объектов. Самым главным объектом является объект WScript. Рассмотрим основные объекты и их возможности [2]:
WScript:
- Устанавливает или получает аргументы командной строки.
- Определяет имя скриптового файла.
- Определяет имя хоста для скрипта (wscript.exe или cscript.exe).
- Определяет версию хоста.
- Создает, соединяется или отсоединяется от объектов COM.
- Программно останавливает выполнение скрипта.
- Выводит сообщения.
WshArguments - Получает доступ к аргументам командной строки.
WshNamed - Получает доступ к именованным аргументам командной строки.
WshUnnamed - Получает доступ к безымённым аргументам командной строки.
WshNetwork - Работа с сетью.
WshController - Для работы со скриптами удаленного управления.
WshRemote - Удаленные скрипты.
WshRemote Error - Информация об ошибках (для WshRemote).
WshShell - Работа с оболочкой Windows.
WshShortcut - Создание ярлыков.
WshSpecialfolders - Пути к специальным папкам Windows.
WshURLShortcut - Создание интернет-ссылок.
WshEnvironment - Доступ к коллекции переменных окружения.
WshScriptExec - Работа со скриптами.
Все объекты имеют свои свойства и методы.
Рисунок 1. Диаграмма движения данных от сервера с сценариев к обработчику сценариев.
Сервер Сценариев читает и передает содержимое файла сценария зарегистрированному ActiveX обработчику сценариев (script engine), экспортирующему метод IActiveScriptParse::ParseScriptText. Выше, на рисунке 1 приведена иллюстрация этого процесса [5].