Скрипты сервера Windows Script Host (WSH)

Скрипты сервера Windows Script Host (WSH) Примеры скриптов и макросов для Word и WSH

В статье описаны скрипты WSH (Windows Script Host), способы их запуска, состав и функциональные возможности самого сервера Windows Script Host, и несколько примеров WSH скриптов. И так, давайте приступим. Все скрипты WSH являются интерпретируемыми, то есть, для их выполнения не требуется не требуется посредника, который будет преобразовывать ваш код в машинный. Вы просто открываете блокнот и пишите код сценария WSH. По умолчанию, Windows Script Host позволяет писать сценарии на двух языках, это VBScript и Jscript, но, при желании можно установить дополнительные модули для остальных языков, например, Perl, Phyton, TCL и так далее.

Примеры работы со wsh скриптами

Теперь давайте рассмотрим, какие типы WSH сценариев можно создавать по умолчанию и их расширения:

.vbs – данный тип файлов содержит программный код на языке VBScript, если запустить такой скрипт, то сервер Windows Script Host автоматически применит для его обработки интерпретатор VBScript.
.vbe – в данном случае, это такой же файл как и vbs, но, закодированный.
.js — данный тип файлов содержит программный код на языке JScript, сервер автоматически будет его обрабатывать интерпретатором Jscript
.jse – закодированный сценарий WSH для языка Jscript.
.wsf – данный тип файлов содержит разметку XML и позволяет объединять вместе синтаксис различным языков.
.wsc – используется для регистрации вашего скрипта как COM-компонента (скриплет). Данный тип файлов требует отдельной статьи.
.wsh – управляет скриптом, аналог файла *.pif для DOS-программ. Будет рассмотрен в данной статье более подробно.

Хорошо, давайте рассмотрим, как запускать WSH скрипты. Для этого существуют два варианта:

cscript.exe – данная программа позволяет запускать сценарии wsh в консольном режиме, то есть, в окне командной строки.
wscript.exe – запуск сценариев wsh в графическом режиме. По умолчанию, при запуске, его обрабатывает именно wscript.exe.

Для простоты эксперимента, напишем два примера, один на языке VBScript, а второй на языке Jscript:

'**************************
'info.vbs
'Вывод информационных данных
'**************************
WScript.Echo "Информация о сценарии:"& vbCrlf & vbCrlf &_
     "Название объекта:" & vbCrlf & WScript.Name & vbCrlf & vbCrlf &_
     "Полный путь к исполняемому файлу сервера:" & vbCrlf & WScript.FullName & vbCrlf & vbCrlf &_
     "Путь к папке с wscript.exe и cscript.exe:" & vbCrlf & WScript.Path & vbCrlf & vbCrlf &_
     "Версия:" & vbCrlf & WScript.Version & vbCrlf & vbCrlf &_
     "Полный путь к сценарию:" & vbCrlf & WScript.ScriptFullName & vbCrlf & vbCrlf &_
     "Имя сценария:" & vbCrlf & WScript.ScriptName

Тут мы используем лишь один объект WScript, объявлять который не надо, он автоматически доступен. Свойство Echo отвечает за вывод информации, остальные свойства (Name, FullName …) позволяют нам получить дополнительную информацию, знак & позволяет объединять строки, символ подчеркивания говорит, что мы разделили строку, константа vbCrlf отвечает за перевод каретки.

И вот аналогичный скрипт WSH, но уже на языке Jscript:

//**************************
//info.vbs
//Вывод информационных данных
//**************************
var Mess;
 
Mess="Информация о сценарии:\n\n";
Mess=Mess + "Название объекта:\n" + WScript.Name + "\n\n";
Mess=Mess + "Полный путь к исполняемому файлу сервера:\n" + WScript.FullName + "\n\n";
Mess=Mess + "Путь к папке с wscript.exe и cscript.exe:\n" + WScript.Path + "\n\n";
Mess=Mess + "Версия:\n" + WScript.Version + "\n\n";
Mess=Mess + "Полный путь к сценарию:\n" + WScript.ScriptFullName + "\n\n";
Mess=Mess + "Имя сценария:\n" + WScript.ScriptName;
WScript.Echo (Mess);

Тут мы объявили переменную Mess, в которую прописали несколько строк, плюсик отвечает за объединение строк, а n – за перевод строки. Для полноты понимания, советую, вам все-таки познакомиться с основами VBScript и Jscript и с остальными статьями из этой рубрики.

Хорошо, теперь стоит уточнить один момент, по умолчанию, если вы сохраните данные сценарии wsh и запустите их с помощью щелчка мыши, то их обработает программа wscipt.exe, однако есть одно но. После установки различных программ или каких-то изменений в системе, сценарии wsh будут обрабатываться совсем другой программой (блокнот, например). Просто надо отрыть свойства файла (скрипта), и изменить приложение для их обработки на wscript.exe (папка WindowsSystem32).

Теперь давайте рассмотрим способы запуска скриптов wsh.

 Консольный режим в командной строке – просто откройте командную строку и пропишите:

cscript.exe “путь к сценарию wsh”

Кавычки нужны лишь в том случае, если путь содержит пробелы, пример:

cscript.exe D:workinfo.vbs
cscript.exe D:workinfo.js

Графический режим в командной строке – просто откройте командную строку и пропишите:

wscript.exe “путь к сценарию”

Например:

wscript.exe D:workinfo.vbs
wscript.exe D:workinfo.js

Используя меню Пуск – Откройте меню пуск, и в поле Выполнить введите путь к сценарию wsh. Например:

D:workinfo.vbs
D:workinfo.js

Хорошо, теперь настало время настройки параметров запуска

Параметры cscript.exe — если вы войдете в командную строку и пропишите cscript.exe, то вам будет показан список параметров запуска сценариев wsh. Все параметры начинаются с символов //. Встроенной справки хватит, что бы во всем разобраться. Так, параметр //Job используется при вызове заданного задания для файлов wsf, пример я привел в статье “Знакомство с ws-файлами (windows script file)”.

Скачать архив с примерами

Параметры wscript.exe —  тут все намного проще. Просто кликните по вашему wsh скрипту правой кнопкой, выберите пункт свойства и перейдите на вкладку Сценарий. Тут можно задать время, через которое произойдет остановка сценария. После того, как вы зададите значение в секундах и нажмете кнопку применить, появится файл с аналогичным названием, но с расширением wsh. Если теперь запустить этот скрипт, то произойдет выполнение сценария с заданными настройками, но, как вы уже догадались, тут есть один подводный камень. У нас сейчас два файла с одинаковыми именами (info), но с разными расширениями, для какого бы скрипты мы не применяли настройки, все ровно будет создан лишь один info.wsh. Ладно, на этом пока все, комментируйте и подписывайтесь.

Оцените статью
Технологии программирования и ведение блога
Добавить комментарий

  1. Григорий

    А можно ли написать такой скрипт, который менял бы настройки подключения для прокси в Свойствах обозревателя в Интернет Эксплорере?
    Хотя бы это для начала. Потом сложнее. Чтобы открывал определенную программу, нажимал на кнопку Коннект (это в впн-клиент) и вводил пароль — 1 строка из указанного файла, потом нажимал Ок и запускал вторую программу, где нужно ввести в два поля Логин и Пароль и нажать кнопку Ок. Хотелось бы узнать, возможно ли это.

    Ответить
    1. Coding автор

      Все можно, у IE своя объектная модель, которою можно подключить в теле скрипта, и уже из самого скрипта управлять браузером. Я с IE не работал, так как …. кому он нужен. Для реализации поставленной вами задачи, Григорий, поройтесь в области «Объектная модель MS Internet Explorer». Хотите на путь хакера стать =)

      Ответить