...

Wscript shell что это за программа

Wscript shell что это

В этой статье пойдет разговор о возможностях Windows Script Host в Windows. Естественно, статья не способна заменить всю документацию, но мы попытаемся охватить основные моменты и дать несколько полезных и употребительных примеров.

Что такое Windows Script Host?

Для чего же все-таки нужен WSH? WSH позволяет работать с файловой системой, реестром, сетевыми соединениями (диски, принтеры), окружением и др. С помощью wsh-скриптов можно управлять запуском программ, посылать сигналы другим процессам, удаленно администрировать систему, работать с сетевым принтером, управлять входом в систему (login-скрипты) и многое другое. Скрипты для Windows Script Host могут быть не только отдельными программами, но и встраиваться в HTML-страницы, и использоваться в Active Server Pages (ASP), JScript, VBScript или PerlScript

Где взять Windows Script Host?

Windows Script Host (WSH) встроена в Microsoft Windows 98/Me/2000. Если вы до сих пор пользуетесь Windows 95,то можете загрузить Windows Script Host с сайта Microsoft. Кстати, последняя версия имеет номер 5.6, поэтому пользователи Windows 98/Me/2000 также могут обновить свою версию с 1.0 или 2.0 до текущей, имеющей дополнительные возможности.

Первые шаги по программированию WSH

Скрипт WSH является обычным текстовым файлом с расширениями .js, vbs и подключаются с помощью ActiveXObject в JS- и VBS-скриптах (в т.ч. в HTML). Кроме этого, WSH-скрипты могут содержаться в «своих» файлах — *.wsh и *.wsf (wsh-файлы — это скрипты для старых версий WSH). Эти файлы представляют собой специальные XML-конструкции. В одном файле можно использовать все доступные скриптовые языки.

Создадим первый учебный скрипт в обычном блокноте.

Запустите блокнот. Напечатайте следующий текст:

Сохраните файл с расширением .js (вместо .txt). Пусть это будет Hello.js.
Запустите Проводник и щелкните на созданном файле.
WSHost запустит движок JScript и исполнит наш скрипт.
В результате наших действий появится сообщение «Здравствуй, мир!»

Итак, у вас получилось! Но действительные возможности WSH гораздо шире. Вы можете создавать полноценные программы, имеющие очень маленькие размеры файлов. Для примера могу посоветовать скачать две программы (Настроить вид папки 1.0 и Сохранить выделенный текст 1.0) с сайта http://winchanger.narod.ru. Эти программы полностью написаны на WSH. Обратите внимание, что даже инсталяция этих программ сделана на WSH.

Объектная модель WSH

Для того, чтобы воспользоваться всеми возможностями, которые представляет эта технология, нужно хорошенько разобраться в ее структуре. Windows Script Host состоит из 14 объектов. Самым главным объектом является объект WScript.

  • Устанавливает или получает аргументы командной строки.
  • Определяет имя скриптового файла.
  • Определяет имя хоста для скрипта (wscript.exe или cscript.exe)
  • Определяет версию хоста
  • Создает, соединяется или отсоединяется от объектов COM
  • Программно останавливает выполнение скрипта
  • Выводит сообщения

Объект Wscript

Все объекты имеют свои свойства и методы. Не будем утомлять читателя перечислением всех свойств объектов. Приведем только свойства для Wscript

Свойство Описание
Arguments Возвращает указатель на список аргументов командной строки
FullName Возвращает имя исполняемого файла хоста и полный путь к нему (например, C:\Windows\wscript.exe)
Name Выводит замечательную надпись Windows Scripting Host
Path Определяет каталог и путь, содержащие wscript.exe или cscript.exe
ScriptFullName Возвращает полный путь и имя исполняемого в данный момент скрипта
ScriptName То же, что и ScriptFullName, но без пути
Version Возвращает версию установленного Windows Scripting Host
Приведем теперь пример с использованием VBScript

Листинг файла sample.vbs

Возможности WSH

Пора перейти к конкретным примерам, которые могут пробудить ваш интерес к WSH

Drag-and-Drop в WSH

Как уже говорилось выше, WSH имеет богатые возможности для работы с файлами, реестром и так далее. Кроме того, WSH поддерживает Drag’n’Drop. С помощью объекта WScript.Arguments в своем скрипте вы получаете имена файлов, с которыми вам надо работать. Сохраните файл dragndrop.vbs (листинг ниже) на диске, откройте Проводник и теперь просто перетащите любые файлы на ваш скрипт, который покажет их имена (пути к ним).

Листинг файла dragndrop.vbs

Создание ярлыков WSH

Также просто создавать ярлыки. Рассмотрим пример создания ярлыка к калькулятору и поместим его в Автозагрузку.

Листинг файла createshortcut.vbs

Специальные папки

Здесь необходимо сказать несколько слов о специальных папках. В предыдущем примере мы использовали одну такую папку Автозагрузка. Но дело в том, что в английской версии Windows аналогичная папка носит имя Startup, и если вы укажете точный путь вроде C:\WINDOWS\Главное меню\Программы\Автозагрузка, то это сработает в русской версии Windows и нигде больше. Чтобы избежать этих проблем Microsoft создала список специалных папок.Чтобы получить доступ к какой-либо специальной папке можно воспользоваться свойством SpecialFolders объекта WshShell.

Листинг файла specfol.js

Работа WSH с реестром

Еще больше возможностей для реализации ваших фантазий предоставляет работа с реестром. Для этого используется объект Wscript.Shell с его методами RegRead, RegWrite, RegDelete.

Приведу пример создания записи в реестре, позволяющий менять заголовок в Internet Explorer

Листинг файла ie_title.vbs

Запуск других приложений

Объект WshShell позволяет запускать другие приложения. В следующем примере мы запускаем две копии Блокнота — новый экземпляр и с содержимым нашего скрипта

Работа WSH с файлами

Также легко можно копировать, переносить и удалять файлы и папки. Не представляет сложности и работа с просмотром содержимого файла и его редактирования. Освоив данные возможности, вы получаете возможность работать с файлами autoexec.bat и config.sys, проверять значения параметров в win.ini, вести логи работы пользователей

Для этого надо инициализировать объект файловой системы FSO, а затем воспользоваться одним из его методов для открытия файла:

Листинг для файла open.vbs

Итак, OpenTextFile открывает файл, если его нет, то создается новый файл. Из параметров, передаваемых методу, обязательным является только первый — имя файла. Остальные параметры можно не указывать. Вторым параметром устанавливается режим открытия файла. Возможные значения следующие:

  • 1 — файл открывается только для чтения
  • 2 — файл открывается для записи. Причем, все содержимое файла, которое было до этого, уничтожится
  • 8 — файл открывается для добавления данных. Все, что вы запишите, будет добавлено в конец файла. Довольно удобно для ведения различных логов

Третья переменная может принимать значение true или false. Она показывает, создавать ли новый файл, если его до этого не существовало. Если значение равно true, то новый файл будет создан.

Вот мы с вами и рассмотрели наиболее используемые возможности WSH. Надеюсь, данная технология заинтересовала вас и вы самостоятельно продолжите изучение документации.

Похожие публикации:

  1. За что отвечают ножки процессора
  2. Как перезапустить виндовс 8 на компьютере
  3. Как удалить с помощью unlocker
  4. Чем открыть vbs файл

WScript – сервер сценариев Windows с графическим интерфейсом.

Сервер сценариев wscript.exe , начиная с Windows 98, является стандартным компонентом Windows Script Host (WSH), и предназначен для выполнения сценариев (скриптов), написанных на языках VBScript и Jscript. Возможности сценариев WSH значительно выше возможностей командных файлов Windows, что позволяет решать многие задачи управления и контроля системы стандартными средствами без использования дополнительного программного обеспечения.

Сценарии WSH могут исполняться в среде сервера сценариев Windows с помощью одной из двух программ – wscript.exe (с графическим интерфейсом) или cscript.exe (с консольным интерфейсом). Функционально, обе программы близки, но графический интерфейс более удобен для выполнения интерактивных сценариев, а консольный – для сценариев администрирования, не требующих диалога с пользователем. Диалоговый режим при выполнении сценариев как с использованием wscript.exe , та и с использованием cscript.exe может быть отключен специальным параметром командной строки. Большинство сценариев администрирования Windows (в том числе многие сценарии, предлагаемые Microsoft) требуют использовать CScript в качестве сервера сценариев. Также следует отметить, что некоторые из свойств объекта WScript (не путать с сервером сценариев WScript!) существуют только тогда, когда активным сервером сценариев является CScript . По умолчанию, в среде WSH используется сервер сценариев wscript.exe

При запуске wscript.exe без параметров, отображается окно Параметры сервера сценариев Windows :

Как видим, имеется всего лишь возможность ограничить время выполнения сценариев и изменить режим отображения сведений о программе в консольном режиме.

Для получения справки по работе с программой, можно воспользоваться командой:

Справка отображается в стандартном окне сообщений Windows:

Формат командной строки wscript.exe :

wccript имя_сценария.расширение [параметры. ] [аргументы. ]

Параметры командной строки:

//B – Пакетный режим: подавляются отображение ошибок и запросов сценария

//D – Включение режима Active Debugging

//E:ядро – Использование указанного ядра для выполнения сценария

//H:CScript – Стандартный сервер сценариев заменяется на CScript.exe

//H:WScript – Стандартный сервер сценариев заменяется на WScript.exe (по умолчанию)

//I – Диалоговый режим (по умолчанию, в противоположность //B)

//Job:xxxx – Выполнение указанного задания WSF

//Logo – Отображать сведения о программе (по умолчанию)

//Nologo – Не отображать сведения о программе во время выполнения

//S – Присвоить установкам сервера сценариев Windows значения по умолчанию.

//T:nn – Интервал ожидания (в секундах): максимальное время выполнения сценария

//X – Выполнение сценария в отладчике

Отличительная особенность параметров командной строки для сервера сценариев – это использование двойной косой черты (двойной прямой слэш – forward slash). Для получения подсказки по использованию, допускаются команды wscript /? и wscript -?

Примеры использования сервера сценариев CSCript

wscript //B hello1.vbs – выполнить сценарий hello1.vbs в графическом режиме.

wscript //D //X hello1.vbs – выполнить сценарий hello1.vbs в среде отладчика c использованием средств активной отладки. Порядок работы и возможности определяются отладчиком, установленным в системе по умолчанию.

wscript.exe /E:VBScript.Encode hello1.js – выполнить сценарий hello1.js но использовать исполняющее ядро VBScript.Encode . Надо отметить, что программный модуль wscript.exe , как и cscript.exe , будучи сервером сценариев, не является интерпретатором языка, на котором написан сценарий, и всего лишь выполняет вызов интерпретатора в соответствии с расширением файла или в соответствии со значением параметра //E: . В качестве интерпретаторов используются динамические библиотеки:

jscript.dll – для языка Jscript

vbscript.dll – для языка VBScript

wscript.exe /H:CScript – установить в качестве сервера сценариев, используемого по умолчанию cscript.exe . После выполнения команды, отображается стандартное окно сообщения Windows:

Используемый по умолчанию сервер сценариев: “cscript.exe”.

Стандартно, сервером сценариев по умолчанию, является wscript.exe .

wscript //I hello1.vbs – выполнить сценарий hello1.vbs в интерактивном режиме. Сценарий будет выполнен с отображением сообщений и запросов пользователю ( противоположность параметру //B ).

wscript //Job:main job1.wsf – выполнить задачу с идентификатором main , параметры которой описываются содержимым файла job1.wsf . Файл с параметрами задачи представляет собой XML-файл, обрабатываемый сервером сценариев в соответствии с указанными XML – элементами. Обычно, файлы .wsf используются в тех случаях, когда необходимо в рамках одного сценария выполнить фрагменты исходного кода, написанные на разных языках программирования. Например:

В частности, использование задач .wsf продиктовано необходимостью реализации пользовательского ввода для сценариев на языке JScript. В реализации языка такой ввод отсутствует, но в VBScript есть функция InputBox которая как раз и позволяет это сделать. Обычно, в разделе на языке VBScript описывается пользовательская функция (например, InputString ) для ввода значения посредством функции InputBox . А из раздела на языке JScript выполняется обращение к функции InputString так, как будто она была написана на этом же самом языке.

Пример сценария, в котором выполняется запрос пользователю на ввод данных в графическом окне, выводимом фрагментом исходного кода на языке VBScript, и вывод введенных данных в окне, отображаемом фрагментом исходного кода на языке JScript:





Для запуска задачи используется команда:

wscript //Job:Str1 hello1.wsf – выполнить задачу с идентификатором Str1 из файла hello1.wsf

wscript //S – Присвоить установкам сервера сценариев Windows значения по умолчанию. В справке, отображаемой по команде wscript /? , параметр //S трактуется как ”Сохранить для данного пользователя текущие параметры командной строки”, что не совсем верно. Попробуйте в качестве сервера сценариев по умолчанию задать cscript.exe, а затем выполните команду wscript //S , в результате чего, сервером сценариев по умолчанию снова станет wscript.exe

wscript //T:5 //Job:Str1 hello1.wsf – аналогично рассмотренным выше примерам, но на выполнение сценария отводится 5 секунд. По истечении указанного времени сценарий будет принудительно завершен ( например, если пользователь не отвечает на запрос сценария). При использовании параметра //T:, ограничивается время выполнения текущего сценария, в отличие от настройки параметра ”Остановить сценарий после указанного числа секунд”, который ограничивает время выполнения всех сценариев. Если ограничение по времени в настройках сервера сценариев и заданное параметром //T: различаются, то будет применено значение указанное в //T:

Параметры Logo и Nologo имеют практический смысл при использовании сервера сценариев в консольном режиме (cscript.exe). Регистр символов в параметрах командной строки значения не имеет.

wscript

Узел сценариев Windows предоставляет среду, в которой пользователи могут выполнять скрипты на разных языках, которые используют различные объектные модели для выполнения задач.

Синтаксис

wscript [] [/b] [/d] [/e:] [] [/i] [/job:] [] [/s] [/t:] [/x] [/?] [] 

Параметры

Параметр Описание
scriptname Указывает путь и имя файла скрипта.
/b Задает пакетный режим, в котором не отображаются оповещения, ошибки сценариев или запросы ввода. Параметр /b является противоположностью /i.
/d Запускает отладчик.
/e Указывает подсистему, используемую для выполнения скрипта. Этот параметр позволяет выполнять скрипты, использующие пользовательское расширение имени файла. Без параметра /e можно запускать только сценарии, использующие зарегистрированные расширения имен файлов. Например, при попытке выполнить следующую команду:
cscript test.admin
Появляется следующее сообщение об ошибке: Input Error: There’s script engine for file extension (Ошибка ввода: отсутствует обработчик скриптов для расширения .admin файла ).
Одним из преимуществ использования нестандартных расширений имен файлов является то, что он защищает от случайного двойного выбора скрипта и выполнения чего-то, что вы на самом деле не хотите запускать.
Использование этого расширения не создает постоянную связь между расширением .admin имени файла и VBScript. При каждом запуске скрипта, использующего .admin расширение имени файла, необходимо использовать параметр /e.
/h:cscript Регистрирует cscript.exe в качестве узла скриптов по умолчанию для выполнения скриптов.
/h:wscript Регистрирует wscript.exe в качестве узла скриптов по умолчанию для выполнения скриптов. Это поведение используется по умолчанию, если параметр /h опущен.
/i Задает интерактивный режим, в котором отображаются оповещения, ошибки сценариев и запросы ввода. Параметр /i является значением по умолчанию и противоположностью /b.
/job:\

Выполняет задание, определенное идентификатором, в WSF-файле скрипта .
/logo Указывает, что перед выполнением скрипта в консоли отображается баннер узла сценариев Windows. Параметр /logo используется по умолчанию и является противоположностью /nologo.
/nologo Указывает, что баннер “Узел сценариев Windows” не отображается перед выполнением скрипта. Параметр /nologo является противоположностью /logo.
/s Сохраняет текущие параметры командной строки для текущего пользователя.
/t:\

Указывает максимальное время выполнения скрипта (в секундах). Можно указать до 32 767 секунд. По умолчанию нет ограничений по времени.
/x Запускает скрипт в отладчике.
ScriptArguments Указывает аргументы, передаваемые в скрипт. Перед каждым аргументом скрипта должна быть косая черта (/).
/? Отображает справку в командной строке.

Комментарии

  • Для выполнения этой задачи не требуются учетные данные администратора. Рассмотрите возможность выполнения этой задачи в качестве пользователя без учетных данных администратора в качестве рекомендации по обеспечению безопасности.
  • Чтобы открыть командную строку, на начальном экране введите cmd и выберите командную строку.
  • Каждый параметр является необязательным. Однако аргументы скрипта невозможно указать без указания скрипта. Если скрипт или аргументы скрипта не указаны, wscript.exe откроется диалоговое окно Параметры узла сценариев Windows . Используйте диалоговое окно, чтобы задать глобальные свойства скриптов для всех сценариев, которыеwscript.exe выполняться на локальном компьютере.
  • Параметр /t предотвращает чрезмерное выполнение скриптов, устанавливая таймер. Когда время превышает указанное значение, wscript прерывает работу обработчика скриптов и завершает процесс.
  • Файлы сценариев Windows обычно имеют одно из следующих расширений имен файлов: .wsf, .vbs, .js.
  • Если дважды выбрать файл скрипта с расширением, которое не имеет связи, появится диалоговое окно Открыть с помощью. Выберите wscript или cscript, а затем выберите Всегда использовать эту программу, чтобы открыть файл этого типа. При этом wscript.exe или cscript.exe в качестве узла скриптов по умолчанию для файлов этого типа.
  • Вы можете задать свойства для отдельных скриптов. Дополнительные сведения о узле сценариев Windows см. в статье Общие сведения о узле сценариев Windows.
  • Узел сценариев Windows может использовать WSF-файлы скриптов . Каждый WSF-файл может использовать несколько обработчиков сценариев и выполнять несколько заданий.

Связанные ссылки

При подготовке материала использовались источники:

https://ab57.ru/cmdlist/wscript.html
https://learn.microsoft.com/ru-ru/windows-server/administration/windows-commands/wscript

Добавить комментарий