Хост сценариев Windows - Windows Script Host

Хост сценариев Windows (WSH)
Windows Script Host Icon.png
Другие именаХост сценариев Windows
Разработчики)Microsoft
Стабильный выпуск
5.812
Операционная системаМайкрософт Виндоус
ТипТехника автоматизации

В Microsoft Хост сценариев Windows (WSH) (ранее назывался Хост сценариев Windows) - это технология автоматизации для Майкрософт Виндоус операционные системы который обеспечивает возможности написания сценариев, сопоставимые с пакетные файлы, но с более широким набором поддерживаемых функций. Этот инструмент был впервые представлен в Windows 95 после сборки 950a на установочных дисках в качестве дополнительной установки, настраиваемой и устанавливаемой с помощью Панель управления, а затем стандартный компонент Windows 98 (сборка 1111) и последующих версий и Windows NT 4.0 Build 1381 и посредством пакета обновления 4. WSH также является средством автоматизации для Internet Explorer через установленные движки WSH начиная с IE версии 3.0; в это время VBScript стал средством автоматизации для Microsoft Outlook 97.[1] WSH также является необязательной установкой, предоставляемой с движком VBScript и JScript для Windows CE 3.0 и ниже, а также некоторые сторонние движки, включая Rexx и другие формы Basic также доступны.[2][3][4]

Он не зависит от языка, так как может использовать разные Активные сценарии языковые движки. По умолчанию он интерпретирует и запускает простой текст JScript (Файлы .JS и .JSE) и VBScript (Файлы .VBS и .VBE).

Пользователи могут устанавливать разные скриптовые движки чтобы они могли писать сценарии на других языках, например PerlScript. Независимый от языка расширение имени файла Также можно использовать WSF. Преимущество Файл сценария Windows (.WSF) заключается в том, что он позволяет использовать несколько сценариев («заданий»), а также комбинацию языков сценариев в одном файле.

Движки WSH включают различные реализации для Rexx, БАЗОВЫЙ, Perl, Рубин, Tcl, PHP, JavaScript, Delphi, Python, XSLT, и другие языки.

Windows Script Host распространяется и устанавливается по умолчанию на Windows 98 и более поздние версии Windows. Он также устанавливается, если Internet Explorer 5 (или более поздняя версия) установлена. Начиная с Windows 2000, Windows Script Host стал доступен для использования со сценариями входа пользователей.

использование

Windows Script Host может использоваться для различных целей, включая сценарии входа в систему, администрирование и общую автоматизацию. Microsoft описывает это как инструмент администрирования.[5] WSH предоставляет среду для запуска сценариев - он вызывает соответствующий механизм сценариев и предоставляет набор служб и объектов, с которыми сценарий может работать.[5] Эти скрипты можно запускать в GUI Режим (WScript.exe) или в режиме командной строки (CScript.exe) или из COM-объекта (wshom.ocx), предлагая пользователю гибкость для интерактивных или неинтерактивных сценариев.[6] Инструментарий управления Windows также можно использовать сценарии таким образом.

WSH, механизмы и связанные с ними функции также перечислены как объекты, к которым можно получить доступ, создать скрипт и запросить его с помощью VBA и обозреватели объектов Visual Studio, а также для аналогичных инструментов, таких как различные отладчики сценариев, например Отладчик скриптов Microsoft, и редакторы.

WSH реализует объектная модель который предоставляет набор Компонентная объектная модель (COM) интерфейсы.[7] Таким образом, в дополнение к ASP, IIS, Internet Explorer, CScript и WScript, WSH можно использовать для автоматизации и взаимодействия с любым приложением Windows с COM и другими открытыми объектами, такими как использование PerlScript для запроса Microsoft Access различными способами, включая различные ODBC двигатели и SQL, ooRexxScript для создания макросов Rexx в Майкрософт Эксель, Quattro Pro, Microsoft Word, Lotus Notes и тому подобное, XLNT скрипт, чтобы получить переменные среды и распечатать их в новом TextPad документ, VBA функциональность Microsoft Office, Открытый офис (а также Python и другие устанавливаемые языки макросов) и Corel WordPerfect Office отдельно от двигателей WSH, хотя Outlook 97 использует VBScript а не VBA в качестве макроязыка.[8]

Python в виде ActiveState PythonScript может использоваться для автоматизации и запроса данных в SecureCRT, как и в случае с другими языками с установленными движками, например PerlScript, ooRexxScript, PHPScript, RubyScript, LuaScript, XLNT и так далее. Одно заметное исключение: Покрасочная мастерская Pro, который может быть автоматизирован в Python с помощью интерпретатора макросов в самой программе PSP, а не с использованием механизма PythonScript WSH или внешней реализации Python, такой как интерпретаторы Python, поставляемые с Unix программные пакеты для эмуляции и интеграции или другие автономные реализации Python и др.[9][10] в качестве промежуточного и действительно может быть запрограммирован таким образом даже в отсутствие какой-либо сторонней установки Python; То же самое и с программируемым Rexx эмулятором терминала Passport.[11] В SecureCRT эмулятор терминала, SecureFX FTP-клиент и связанные с ним клиентские и серверные программы от Van Dyke в текущих версиях автоматизированы с помощью WSH, поэтому можно использовать любой язык с установленным механизмом; программное обеспечение поставляется с примерами VBScript, JScript и PerlScript.

Начиная с самых последних выпусков и возвращаясь к ряду версий, возможность программирования 4NT / Принять командование в последних реализациях (посредством «@REXX» и аналогичных для Perl, Python, Tcl, Ruby, Lua, VBScript, JScript и т.п. и т. д.) обычно используется движок WSH.[12] В ZOC Эмулятор терминала получает возможность программирования на Rexx с помощью внешнего интерпретатора, один из которых поставляется вместе с программой, а альтернативные интерпретаторы Rexx могут быть указаны в конфигурации программы.[13][14] MKS Toolkit предоставляет PScript, механизм WSH в дополнение к стандартному интерпретатору Perl perl.exe, который поставляется с пакетом.

VBScript, JScript и некоторые сторонние движки имеют возможность создавать и выполнять скрипты в закодированном формате, который предотвращает редактирование с помощью текстового редактора; расширения файлов для этих закодированных сценариев - .vbe, .jse и другие файлы того же типа.

Если не указано иное, любой механизм сценариев WSH может использоваться с различными пакетами программного обеспечения сервера Windows для создания сценариев CGI. Текущие версии стандартных механизмов WSH и все или большинство сторонних механизмов также имеют возможности сокетов; В качестве сценария CGI или иначе PerlScript является выбором многих программистов для этой цели, а VBScript и различные движки на основе Rexx также оцениваются как достаточно мощные с точки зрения возможности подключения и обработки текста, чтобы также быть полезными. Это также относится к доступу к файлам и их обработке - самые ранние механизмы WSH для VBScript и JScript этого не делают, поскольку базовый язык этого не делал,[15] в то время как PerlScript, ooRexxScript и другие имеют это с самого начала.

WinWrap Basic, SaxBasic и другие похожи на Visual Basic для приложений. Эти инструменты используются для добавления возможностей сценариев и макросов в разрабатываемое программное обеспечение и могут быть найдены в более ранних версиях Host Explorer Например. Таким же образом можно использовать и многие другие языки. Другие языки, используемые для написания сценариев программ, включают Rexx, Tcl, Perl, Python, Ruby и другие языки, которые содержат методы для управления объектами в операционной системе, а также в программах электронных таблиц и баз данных.[16] Единственным исключением является то, что Zoc эмулятор терминала управляется Rexx интерпретатор, поставляемый с пакетом, или другой интерпретатор, указанный пользователем; это также относится к эмулятору паспорта.

VBScript - это макроязык в Microsoft Outlook 97, в то время как WordBasic используется для Word до 6, Powerpoint и других инструментов. В Excel до 5.0 используется Visual Basic 5.0. В будущих версиях Office 2000 для всех компонентов используется настоящий Visual Basic для приложений 6.0. Другие компоненты используют Visual Basic для приложений. OpenOffice использует Visual Basic, Python и некоторые другие в качестве языков макросов, и другие могут быть добавлены. LotusScript очень тесно связан с VBA и используется для Lotus Notes и Lotus SmartSuite, который включает Lotus Word Pro (текущий потомок Ami Pro ), Lotus подход, Lotus FastSite, Лотос 1-2-3, & c, а чистый VBA, лицензированный у Microsoft, используется в таких продуктах Corel, как WordPerfect, Парадокс, Quattro Pro и т. д.

К любому языку сценариев, установленному в Windows, можно получить доступ с помощью внешних средств PerlScript, PythonScript, VBScript, а другие доступные механизмы можно использовать для доступа к базам данных (Lotus Notes, Microsoft Access, База данных Oracle, Paradox) и электронные таблицы (Microsoft Excel, Lotus 1-2-3, Quattro Pro) и другие инструменты, такие как текстовые процессоры, эмуляторы терминала, командные оболочки и т. Д. Это можно сделать с помощью WSH, поэтому можно использовать любой язык, если есть установленный движок.

В последних версиях Взять командование В расширенной командной строке и инструментах команда «скрипт», вводимая в командной строке, выдает список установленных в данный момент ядер, по одному в строку и, следовательно, с разделителями CR-LF.[17][18][19]

Примеры

Первый пример очень прост; это показывает некоторые VBScript который использует корневой COM-объект WSH «WScript» для отображения сообщения с кнопкой «ОК». После запуска этого сценария будет вызван механизм CScript или WScript и предоставлена ​​среда выполнения.

Содержание файла hello0.vbs

WScript.Эхо "Привет, мир"WScript.Покидать

Программирование WSH также может использовать JScript язык.

Содержание файла hello1.js

WSH.Эхо("Привет, мир");WSH.Покидать();

Или код можно смешать в одном WSF файл, например VBScript и JScript, или любой другой:

Содержание файла hello2.wsf

<job><сценарий язык =«VBScript»>  MsgBox "привет, мир (от В.Б.)"</script><сценарий язык ="JScript">  WSH.echo ("привет мир (от js)");</script></job>

Проблемы безопасности

Приложения и процессы Windows можно автоматизировать с помощью сценария в Windows Script Host. Для использования этой способности могут быть написаны вирусы и вредоносное ПО. Таким образом, некоторые предлагают отключить его из соображений безопасности.[20] В качестве альтернативы антивирусные программы могут предлагать функции для управления .vbs и другими скриптами, которые выполняются в среде WSH.

Начиная с версии 5.6 WSH, скрипты могут быть с цифровой подписью программно с помощью Scripting.Signer объект в самом скрипте при условии действительного свидетельство присутствует в системе. В качестве альтернативы в командной строке можно использовать инструмент кодирования знаков из Platform SDK, который был расширен для поддержки типов файлов WSH.[21]

Используя Политики ограниченного использования программ В Windows XP система может быть сконфигурирована для выполнения только тех сценариев, которые хранятся в надежных расположениях, имеют известный хэш MD5 или подписаны цифровой подписью надежного издателя, что предотвращает выполнение ненадежных сценариев.[22]

Доступные скриптовые движки

Примечание: По определению, все эти скриптовые движки могут использоваться в CGI программирование под Windows с любым количеством программ и настроек, что означает, что файлы исходного кода для сценария, используемого на сервере для целей CGI, могут иметь другие расширения файлов, такие как .cgi и так далее. Вышеупомянутая способность Windows Script Host запускать сценарий с несколькими языками в файлах с расширением .wsh. Расширенный HTML и XML также добавить к дополнительным возможностям при работе со скриптами для использования в сети, как и Активные серверные страницы и так далее. Более того, Windows сценарии оболочки и скрипты, написанные в оболочках с расширенными возможностями, такими как TCC, 4NT и т. д. и оболочки Unix в рамках программного обеспечения для взаимодействия, такого как Набор инструментов MKS в них также могут быть встроены скрипты.

Название двигателяРеализован язык сценариевБазовый языкРасширения файловДоступностьПроизведеноПоложение делДата первого выпускаЗакодированные скриптыПримечания
VBScriptMicrosoft VBScriptMicrosoft Visual Basic.vbsУстановлен по умолчаниюMicrosoftустановка по умолчанию1999Да, .vbeСкрипт хоста Windows по умолчанию
JScriptMicrosoft JScriptECMAScript.jsУстановлен по умолчаниюMicrosoftустановка по умолчанию1999Да, .jseХост java-скрипта по умолчанию
WinWrap BasicWinWrap BasicБазовый.wwbВ основной установке WWBПолярная инженерияСтандартный функционал WWB; Использует как .NET, так и COM2004да
PerlScriptPerlPerl 5.plsс ActiveState PerlActiveStateОткрытый исходный код1999Как сообщается, да
PScriptPerlPerl 5, функциональность CGI.p, .psс MKS ToolkitМКСКоммерческий2001
XBScriptxBase Scripting EnginexBase (Машинка для стрижки ).xbs, .prgМашинка для стрижкис программным обеспечением XBScriptКоммерческий
LotusScript WSHLotusScriptMicrosoft Visual Basic (q.v.).nsfСторонняя загрузкаСлужба поддержки PlusБесплатное ПО2001
RexxScriptRexxRexx.rxs, .rx, .rexС некоторыми реализациями RexxРазныеБесплатное ПО1998
ooRexxScriptОткрыть объект REXXREXX.rxsс Open Object Rexx или бесплатно от третьих лицКоманда Open Object RexxОткрытый исходный код
PythonScriptPythonPython.pysSourceForge и ActivePythonПроект Pywin32Открытый исходный код
TclScriptTcl / TkTcl / Tk.tclsSourceForgeActiveState или третье лицоОткрытый исходный код
ActivePHPScriptPHPPHP.phpsс PHPКоманда PHPОткрытый исходный код
PHPScriptPHPPHP.phpsс PHPКоманда PHPОткрытый исходный кодБолее ранняя версия ActivePHPScript
RubyScriptРубинРубин.rbsс дистрибутивом RubyРубиновая командаОткрытый исходный кодда
XLNTScriptXLNTDCL.xcsс XLNTAdvanced Systems Concepts, Inc.Коммерческий1997An OpenVMS DCL -на основе многоцелевого скриптового приложения для Windows
LuaScriptLuaLua.luaс LuaОрганизация LuaОткрытый исходный код
Объект REXX двигательОбъект REXXRexx.rex, .rxsс IBM Object REXXIBMКоммерческий2002
XML EngineXML разборРасширенный HTML, XML.xmlсо многими реализациями XMLЭльфийские данныеде-факто установка по умолчанию2000Macintosh тоже
Двигатель Kixtart WSHKixtartKixTart, MS-DOS, Windows 95. Оболочки Windows NT.kixс KixStartMicrosoft НидерландыНаборы ресурсов Windows и другие ресурсы1996Загрузите с сайта Microsoft или другого источника, также известного как KixStart32
NullScriptNullScriptНулевой язык.nsс NullScriptОрганизация NullScriptНаборы ресурсов Windows и другие ресурсы1999
ForthScriptЧетвертыйЧетвертый.fth, другиеЧетвертыйDMOZОткрытый исходный код
Haskell СценарийHaskellHaskell* .hsk (предварительные), другиебесплатная загрузкаОткрытый исходный код
Двигатель XSLT WSHXSLTXSLT.xsltбесплатная загрузкаОткрытый исходный код
Движок CobolScript WSHКоболКобол.cbl. .cob, .cbFujitsu Cobol 3 - бесплатно для использования в образовательных целяхБесплатное коммерческое ПО от Fujitsu с бесплатным компилятором для преподавателей и т. Д.Проприетарный
Движок сценариев DelphiDelphiDelphi, вариант Pascal.dlp, .del,.В некоторых дистрибутивах или наборах ресурсов DelphiКоммерческий2003
DMDScriptDMDScriptD, значительное увеличение C.dmdDMD Distributions, скачатьБесплатное ПОДоступно в Интернете2014DMD
C # скриптC #Microsoft C # .NET.cs. .c #, другиеИсходный код доступенОткрытый исходный код, ведется активная разработканеясно2013
Малый скриптовый движок CCК (K&R, Ansi).c, другиеРазличные места, проверьте в ИнтернетеБесплатное ПО2009
JavaScript WSH EngineJavaScript /ЯваJava и варианты.java, .j, jva, другиеСо многими реализациями JavaScriptSun / Другие Java-организацииБесплатное ПО
Возьмите под свой контроль двигатель WSH4NT /Взять командованиеTCC, текущая версия 4NT п.btm, .cmd, bat, другиеПроверить программное обеспечение JPПрограммное обеспечение JPПроприетарный2015Ранняя разработка
92Script WSH EngineТИ-89 / 92 + / Вояджер 200 TI-BasicКалькулятор TI-Basic0,92 барсСайт Project Web / FTPРазличные независимые программистыЭкспериментальный, с открытым исходным кодом2014"возможный"Beta Q4 2015 для главного двигателя; графическая функциональность (92Script / Tk) тогда или позже
48Script WSH EngineHP-48 Встроенный язык программирования семейства калькуляторовЯзык программирования HP 48, дальний родственник Forth, Basic, Lisp.48sСайт Project Web / FTPРазличные независимые программистыЭкспериментальный2015ПланируетсяПо состоянию на 30.09.2015. Язык имеет Лисп, Бейсик, Форт и другие влияния.
Сценарий ФортранаФортранФортран 77.for, .ftn. f77, f90, f95РазныеРазныеЭкспериментальная проверка концепции, академические упражнения, условно-бесплатная, коммерческая, с открытым исходным кодом.2000
ПаскальскриптObject PascalПаскаль 7.pas, .ops, другоеObject PascalRemObjectsБесплатное ПО2001Может также использоваться напрямую с Delphi
Lisp WSH EngineЛиспЛисп.lisp, .lspРазличные инструменты LispAutoLisp и другиеБесплатное или условно-бесплатное ПО
БЕСЕНECMA-JavaScriptJava и варианты.bes, .bsn, другиеSourceForgeBESEN ОрганизацияОткрытый исходный код2011
Двигатели ECMAScript WSHJava и вариантыРазныеРазныеРазныеРазныеЭкспериментальное, бесплатное, с открытым исходным кодом, условно-бесплатное, проприетарное, коммерческое ПО2005Существует множество реализаций ECMAScript, но не все имеют движки WSH.
Двигатель CFXScript WSHВстроенный язык программирования Casio CFX-9850 и FX CalculatorЯзык программирования калькулятора Casio, портированный на различные операционные системы как CFW.cfxbСайты Project Web / FTPнезависимые программистыЭкспериментальный2015Планируется[23]По состоянию на 30.09.2015. В языке есть элементы Basic, Forth, Fortran и другие.
Механизм SharpCalcScript WSHГрафические калькуляторы Sharp на встроенном языке программированияSharp S-Basic, портированный на windows как NeusSFortran.scsbСайты Project Web / FTPнезависимые программистыЭкспериментальный2015ПланируетсяПо состоянию на 30.09.2015. Также включает в себя язык S-Basic карманных компьютеров Sharp.

Были предложения создать движки для других языков, таких как LotusScript, SaxBasic, BasicScript, KiXtart, awk, трепать, csh и другие оболочки Unix, 4NT, cmd.exe (оболочка Windows NT), Windows PowerShell, DCL, C, C ++, Фортран и другие.[24]Язык XLNT[25] основан на DCL и предоставляет очень большое подмножество языка вместе с дополнительными командами и операторами, а программное обеспечение можно использовать тремя способами: механизм WSH (* .xcs), интерпретатор консоли (* .xlnt) и как сервер. и движок CGI на стороне клиента (* .xgi).[26]

Когда сервер реализует CGI, такой как Windows Internet Information Server, порты Apache и другие, могут использоваться все или большинство механизмов; наиболее часто используются VBScript, JScript, PythonScript, PerlScript, ActivePHPScript и ooRexxScript. Программа MKS Toolkit PScript также запускает Perl. Командные оболочки, такие как cmd.exe, 4NT, ksh, и языки сценариев с обработкой строк и, желательно, с функциями сокета, также могут использоваться для сценариев CGI; скомпилированные языки, такие как C ++, Visual Basic и Java, также могут использоваться таким образом. Все интерпретаторы Perl, ooRexx, PHP и более поздние версии VBScript и JScript могут использовать для этого сокеты для TCP / IP и обычно UDP и другие протоколы.

История версий

Версия для WindowsПоставляется с версией WSHПоследняя распространяемая версия
Windows 95Нет (отдельно распространяемый)5.6
Windows NT 4.0Нет (отдельно распространяемый)5.6
Windows NT Сервер 4.0Нет (отдельно распространяемый)5.6
Windows CE 3.01.0 (дополнительная установка на установочный диск)2.0
Windows 981.05.6
Второе издание Windows 981.05.6
Windows 20002.0 (также называемый WSH 5.1)5.7
Windows 2000 Сервер2.0 (также называемый WSH 5.1)5.7
Windows 2000 SP3, SP4 и SP55.65.7
Windows Me2.0 (также называемый WSH 5.1)5.6
Windows XP5.65.7
Windows XP SP35.7Непригодный
Windows Server 20035.65.7
Виндоус виста5.7Непригодный
Windows Server 20085.7Непригодный
Windows 75.8Непригодный
Windows Server 2008 R25.8Непригодный
Windows 85.8Непригодный
Windows Server 20125.8Непригодный
Windows 105.812Непригодный
Windows Server 20165.812Непригодный

Распространяемая версия WSH версии 5.6 может быть установлена ​​в Windows 95/98 / Me и Windows NT 4.0 / 2000. WSH 5.7 можно загрузить для Windows 2000, Windows XP и Windows Server 2003. Недавно[когда? ]распространяемые версии для старых операционных систем (Windows 9x и Windows NT 4.0) больше не доступны в Центре загрузки Microsoft.

Начиная с Windows XP с пакетом обновления 3, выпуск 5.7 не требуется, так как он включен, и с тех пор новые версии включаются в новые версии Windows.

Смотрите также

Рекомендации

  1. ^ • MSDN, «Windows Scripting Host» и «VBScript»
  2. ^ MSDN, апрельское издание 2000 г., "Windows Scripting Host"
  3. ^ Библия VBScript (1999)
  4. ^ Пакет ресурсов Windows 2000 Server (документация
  5. ^ а б "Что такое WSH?". msdn.microsoft.com. В архиве из оригинала 7 января 2018 г.. Получено 30 апреля 2018.
  6. ^ «Основы Windows Script Host». msdn.microsoft.com. В архиве с оригинала 8 августа 2017 г.. Получено 30 апреля 2018.
  7. ^ "Объектная модель хоста сценария Windows". msdn.microsoft.com. В архиве с оригинала 8 августа 2017 г.. Получено 30 апреля 2018.
  8. ^ MSDN "VBA"
  9. ^ Руководство пользователя Paint Shop Pro 8
  10. ^ Paint Shop Pro 8 справка, «Автоматизация»
  11. ^ основной файл справки, Паспорт для Windows
  12. ^ Документация Take Command 18.00 бумажная копия документации и файл справки
  13. ^ Zoc v 6.0 справка
  14. ^ Zoc 5.0 печатное руководство
  15. ^ Документация MSDN
  16. ^ Библии для Windows Office 97 и 2000 (Wiley)
  17. ^ Документация Take Command версии 18.00
  18. ^ Сайт JP Software Take Command-4NT-4Dos-4OS / 2, доска объявлений
  19. ^ Take Command 18.00 помощь
  20. ^ "Norman - антивирусное и защитное программное обеспечение для дома и бизнеса". AVG.com. В архиве из оригинала 21 февраля 2006 г.. Получено 30 апреля 2018.
  21. ^ LLC), Тара Мейер (Aquent. «Обеспечение безопасного опыта». msdn.microsoft.com. В архиве с оригинала 10 ноября 2017 г.. Получено 30 апреля 2018.
  22. ^ Windows Script Host 5.6 обеспечивает интеграцию с Windows XP, безопасность и новую объектную модель В архиве 2008-02-18 в Wayback Machine
  23. ^ CasioCalc.com, сообщения от 15.09.2016
  24. ^ «Архивная копия». В архиве из оригинала 21.03.2015. Получено 2015-03-12.CS1 maint: заархивированная копия как заголовок (связь)
  25. ^ Файл справки ASCI html
  26. ^ Сайт ASCI

внешняя ссылка