Введение

Технология автоматизации для Windows

Microsoft Windows Script Host (WSH) (ранее называвшийся Windows Scripting Host) — это технология автоматизации для операционных систем Microsoft Windows, обеспечивающая возможности сценариев, сопоставимые с пакетными файлами, но с более широким спектром поддерживаемых функций. Этот инструмент впервые был представлен в Windows 95 после сборки 950a на установочных дисках как дополнительная установка, настраиваемая и устанавливаемая через панель управления, а затем стал стандартным компонентом Windows 98 (сборка 1111) и последующих версий, а также Windows NT 4.0 (сборка 1381) с помощью Service Pack 4. WSH также является средством автоматизации для Internet Explorer через установленные движки WSH, начиная с версии IE 3.0; в это время VBScript стал средством автоматизации для Microsoft Outlook 97. WSH также поставляется в качестве дополнительной установки с движками VBScript и JScript для Windows CE 3.0 и последующих версий, а также доступны некоторые сторонние движки, включая Rexx и другие диалекты Basic. Он не зависит от языка, поскольку может использовать различные движки Active Scripting. По умолчанию он интерпретирует и запускает обычный текст JScript (.js и файлы) и VBScript (.vbs и файлы). Пользователи могут устанавливать различные скриптовые движки, чтобы использовать другие языки, например, PerlScript. Также можно использовать расширение имени файла WSF, не зависящее от языка. Преимущество файла скрипта Windows (.wsf) заключается в том, что он позволяет создавать несколько сценариев ("задач"), а также комбинировать языки сценариев в одном файле. Движки WSH включают различные реализации для Rexx, BASIC, Perl, Ruby, Tcl, PHP, JavaScript, Delphi, Python, XSLT и других языков. Windows Script Host распространяется и устанавливается по умолчанию в Windows 98 и более поздних версиях Windows. Он также устанавливается при установке Internet Explorer 5 (или более поздней версии). Начиная с Windows 2000, Windows Script Host стал доступен для использования с пользовательскими скриптами входа в систему.

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

Windows Script Host может использоваться для различных целей, включая скрипты входа в систему, администрирование и общую автоматизацию. Microsoft описывает его как инструмент администрирования. WSH предоставляет среду для выполнения скриптов — он вызывает соответствующий движок скриптов и предоставляет набор служб и объектов для работы со скриптом. Инструментарий управления Windows (Windows Management Instrumentation) также может быть использован для написания скриптов таким образом. WSH, движки и связанные с ними функции также перечислены как объекты, к которым можно получить доступ, исследовать и запрашивать с помощью обозревателей объектов VBA и Visual Studio, а также аналогичных инструментов, таких как различные отладчики скриптов, например Microsoft Script Debugger, и редакторы. WSH реализует объектную модель, которая предоставляет набор интерфейсов Component Object Model (COM). Таким образом, помимо ASP, IIS, Internet Explorer, CScript и WScript, WSH можно использовать для автоматизации и взаимодействия с любым приложением Windows, использующим COM и другие открытые объекты, например, с помощью PerlScript для запроса Microsoft Access различными способами, включая различные движки ODBC и SQL, ooRexxScript для создания макросов Rexx в Microsoft Excel, Quattro Pro, Microsoft Word, Lotus Notes и подобных, скрипта XLNT для получения переменных среды и вывода их в новый документ TextPad и так далее. Функциональность VBA в Microsoft Office, Open Office (а также Python и других устанавливаемых макроязыков) и Corel WordPerfect Office отделена от движков WSH, хотя Outlook 97 использует VBScript, а не VBA в качестве макроязыка. Python в форме ActiveState PythonScript может использоваться для автоматизации и запроса данных в SecureCRT, как и другие языки с установленными движками, например PerlScript, ooRexxScript, PHPScript, RubyScript, LuaScript, XLNT и так далее. Одним из заметных исключений является Paint Shop Pro, который можно автоматизировать на Python с помощью интерпретатора макросов внутри самой программы PSP, а не с использованием движка PythonScript WSH или внешней реализации Python, такой как интерпретаторы Python, поставляемые с пакетами программного обеспечения для эмуляции и интеграции Unix или другими автономными реализациями Python и т. п. в качестве промежуточного звена и, фактически, может быть запрограммирован таким образом даже при отсутствии какой-либо сторонней установки Python; то же самое относится к программируемому терминальному эмулятору Rexx Passport. Терминальный эмулятор SecureCRT, FTP-клиент SecureFX и связанные с ними клиентские и серверные программы от Van Dyke в текущих версиях автоматизированы с помощью WSH, поэтому можно использовать любой язык с установленным движком; программное обеспечение поставляется с примерами на VBScript, JScript и PerlScript. Начиная с последних выпусков и возвращаясь к ряду предыдущих версий, программируемость 4NT / Take Command в последних реализациях (с помощью "@REXX" и аналогичных конструкций для Perl, Python, Tcl, Ruby, Lua, VBScript, JScript и т. д.) обычно использует движок WSH. Терминальный эмулятор ZOC получает возможность программирования на Rexx с помощью внешнего интерпретатора, один из которых поставляется с программой, и альтернативные интерпретаторы Rexx могут быть указаны в конфигурации программы. MKS Toolkit предоставляет PScript, движок WSH, в дополнение к стандартному интерпретатору Perl perl.exe, который поставляется с пакетом. VBScript, JScript и некоторые сторонние движки имеют возможность создавать и выполнять скрипты в закодированном формате, что предотвращает их редактирование в текстовом редакторе; расширения файлов для этих закодированных скриптов — . и другие аналогичные. Если не указано иное, любой скриптовый движок WSH можно использовать с различными пакетами программного обеспечения Windows Server для обеспечения CGI-скриптов. Текущие версии движков WSH по умолчанию и большинство сторонних движков также имеют возможности работы с сокетами; в качестве CGI-скрипта или иным способом PerlScript является выбором многих программистов для этой цели, а VBScript и различные движки на основе Rexx также оцениваются как достаточно мощные в плане подключения и обработки текста, чтобы также быть полезными. Это также относится к доступу к файлам и их обработке — самые ранние движки WSH для VBScript и JScript не имели этой возможности, поскольку базовый язык ее не поддерживал, в то время как PerlScript, ooRexxScript и другие поддерживали ее с самого начала. WinWrap Basic, SaxBasic и другие аналогичны Visual Basic for Applications. Эти инструменты используются для добавления скриптовых и макро-возможностей в разрабатываемое программное обеспечение и могут быть найдены в более ранних версиях Host Explorer, например. Многие другие языки также могут быть использованы таким образом. Другие языки, используемые для скриптов программ, включают Rexx, Tcl, Perl, Python, Ruby и другие, которые поставляются с методами управления объектами в операционной системе и в программах для работы с электронными таблицами и базами данных. Одним из исключений является то, что терминальным эмулятором Zoc управляет интерпретатор Rexx, поставляемый с пакетом, или другой интерпретатор, указанный пользователем; то же самое относится к эмулятору Passport. VBScript является макроязыком в Microsoft Outlook 97, а WordBasic используется для Word до версии 6, PowerPoint и других инструментов. Excel до версии 5.0 использует Visual Basic 5.0. Начиная с Office 2000, во всех компонентах используется полноценный Visual Basic for Applications 6.0. Другие компоненты используют Visual Basic for Applications. OpenOffice использует Visual Basic, Python и несколько других языков в качестве макроязыков, и можно добавить другие. LotusScript тесно связан с VBA и используется для Lotus Notes и Lotus SmartSuite, который включает Lotus Word Pro (текущий потомок Ami Pro), Lotus Approach, Lotus FastSite, Lotus 1-2-3 и т. д., а чистый VBA, лицензированный у Microsoft, используется в продуктах Corel, таких как WordPerfect, Paradox, Quattro Pro и т. д.

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

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

Приложения и процессы Windows могут быть автоматизированы с помощью скриптов в Windows Script Host. Вирусы и вредоносное ПО могут быть созданы для эксплуатации этой возможности. Поэтому некоторые рекомендуют отключать его в целях безопасности. В качестве альтернативы, антивирусные программы могут предлагать функции для контроля над vbs и другими скриптами, выполняемыми в среде WSH. Начиная с версии 5.6 WSH, скрипты могут быть программно цифровым образом подписаны с использованием объекта Scripting.Signer непосредственно в скрипте, при условии наличия действительного сертификата в системе. Также можно использовать инструмент signcode из Platform SDK, который был расширен для поддержки файлов WSH, через командную строку. С помощью Политик ограничения программного обеспечения, представленных в Windows XP, можно настроить систему таким образом, чтобы она выполняла только те скрипты, которые хранятся в доверенных расположениях, имеют известный MD5-хэш или были цифровым образом подписаны доверенным издателем, тем самым предотвращая выполнение ненадежных скриптов.

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

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

Название движка | Язык сценария | Реализованный язык | Расширение файла | Доступность | Производитель | Статус | Дата первоначального выпуска | Зашифрованные скрипты | Примечания
---|---|---|---|---|---|---|---|---|---
VBScript | Microsoft VBScript | Microsoft Visual Basic | vbs | Установлен по умолчанию | Microsoft | default install | 1999 | Да | По умолчанию windows host-скрипт
JScript | Microsoft JScript | ECMAScript | js | Установлен по умолчанию | Microsoft | default install | 1999 | Да | По умолчанию java script host
WinWrap Basic | WinWrap Basic | Basic | wwb | В основной WWB установке | Polar Engineering | Standard functionality of WWB | 2004 | Да | Использует NET и COM
PerlScript | Perl | Perl 5 | pls | с ActiveState Perl | ActiveState | Open source | 1999 | Reportedly yes |
PScript | Perl | Perl 5, CGI functionality | p, ps | с MKS Toolkit | MKS | Commercial | 2001 | X |
XBScript | xBase Scripting Engine | xBase (Clipper) | xbs, prg | с XBScript software | Clipper | Commercial | | |
LotusScript | WSH LotusScript | Microsoft Visual Basic | nsf | Загрузка третьей стороной | Service Desk Plus | Freeware | 2001 | |
RexxScript | Rexx | Rexx | rxs, rx, rex | С некоторыми реализациями Rexx | Various | Freeware | 1998 | |
ooRexxScript | Open Object REXX | REXX | rxs | с Open Object Rexx или от третьих сторон | Open Object Rexx team | Open source | | |
PythonScript | Python | Python | pys | SourceForge & с ActivePython | The Pywin32 project | Open source | | |
TclScript | Tcl/Tk | Tcl/Tk | tcls | SourceForge | ActiveState или третья сторона | Open source | | |
ActivePHPScript | PHP | PHP | phps | с PHP | PHP team | Open source | | |
PHPScript | PHP | PHP | phps | с PHP | PHP team | Open source | | |
RubyScript | Ruby | Ruby | rbs | с Ruby distribution | Ruby team | Open source | | Yes |
XLNTScript | XLNT | DCL | xcs | с XLNT | Advanced Systems Concepts, Inc. | Commercial | 1997 | |
LuaScript | Lua | Lua | lua | с Lua | Lua organisation | Open Source | | |
Object REXX engine | Object REXX | Rexx | rex, rxs | с IBM Object REXX | IBM | Commercial | 2002 | |
XML Engine | XML parsing | Extended HTML, XML | xml | с многими XML реализациями | Elf Data | de facto | 2000 | | Macintosh too
Kixtart | WSH Engine | Kixtart | kix | с KixStart | Microsoft Netherlands | Windows Resource Kits and other resources | 1996 | | Загрузка из Microsoft или других источников, также известная как KixStart32
NullScript | NullScript | Null language | ns | с NullScript | NullScript Organisation | Windows Resource Kits and other resources | 1999 | |
ForthScript | Forth | Forth | fth, others | Forth DMOZ | | Open Source | | |
Haskell Script | Haskell | Haskell | *.hsk (временный), others | Бесплатная загрузка | | Open Source | | |
XSLT WSH Engine | XSLT | XSLT | xslt | Бесплатная загрузка | | Open Source | | |
CobolScript | WSH Engine | Cobol | cbl. cob, cb | Fujitsu | Cobol 3 | Бесплатный для образовательного использования | | Коммерческая программа от Fujitsu бесплатная с бесплатным компилятором для педагогов и т.д.
Delphi scripting engine | Delphi | Delphi, вариант Pascal | dlp, del | В некоторых дистрибутивах Delphi или наборах ресурсов | | Commercial | 2003 | |
DMDScript | DMDScript | D, основное увеличение C | dmd | DMD Distributions, скачать | | Freeware | 2014 | |
DMD C# Script | C# | Microsoft C#. NET | cs. c#, others | Код исходного кода доступен | | Open Source, активная разработка в процессе | unclear | 2013 |
Small C Scripting Engine | C | C (K&R, Ansi) | c, others | Различные места, проверка Web | | Freeware | 2009 | |
JavaScript WSH Engine | JavaScript/Java | Java & варианты | java, j, jva, others | С многими реализациями JavaScript | Sun/Other Java Organisations | Freeware | | |
Take Command WSH Engine | 4NT/Take Command | TCC, текущая версия 4NT | p btm, cmd, bat, others | Проверка JP Software | JP Software | Proprietary | 2015 | Ранняя разработка
92Script WSH Engine | TI 89/92+/Voyager 200 | TI Basic Calculator | .92bs | Проект Web/FTP | Various independent programmers | Experimental, Open Source | 2014 | "возможно"
48Script WSH Engine | HP 48 Calculator family | HP 48 Programming Language | .48s | Проект Web/FTP | Various independent programmers | Experimental | 2015 | Planned
Fortran Script | Fortran | Fortran 77 | for, ftn. f77, f90, f95 | Various | Various | Experimental | 2000 | proof of concept, academic exercise, shareware, commercial, open source
PascalScript | Object Pascal | Pascal | pas, ops, other | Object Pascal | RemObjects | Freeware | 2001 | Can also be used with Delphi directly
Lisp WSH Engine | Lisp | Lisp | lisp, lsp | Различные инструменты Lisp | AutoLisp and others | Freeware or Shareware | |
BESEN ECMA | JavaScript | Java and Variants | bes, bsn, others | SourceForge | BESEN Organisation | Open Source | 2011 |
ECMAScript WSH engines | Java and Variants | Various | Various | Various | Various | Experimental, Freeware, Open Source, Shareware, Proprietary, Commercialware | 2005 |
CFXScript | WSH Engine | Casio CFX 9850 and fx Calculator series | cfxb | Проект Web/FTP | independent programmers | Experimental | 2015 | Planned
SharpCalcScript | WSH Engine | Sharp graphing calculators | scsb | Проект Web/FTP | independent programmers | Experimental | 2015 | Planned
There have been suggestions of creating engines for other languages, such as LotusScript, SaxBasic, BasicScript, KiXtart, awk, bash, csh and other Unix shells, 4NT, cmd. exe (the Windows NT shell), Windows PowerShell, DCL, C, C++, Fortran and others. The XLNT language is based on DCL and provides a very large subset of the language along with additional commands and statements and the software can be used in three ways: the WSH engine (*. xcs), the console interpreter (*. xlnt) and as a server and client side CGI engine (*. xgi). When a server implementing CGI such as the Windows Internet Information Server, ports of Apache and others, all or most of the engines can be used; the most commonly used are VBScript, JScript, PythonScript, PerlScript, ActivePHPScript, and ooRexxScript. The MKS Toolkit PScript program also runs Perl. Command shells like cmd. exe, 4NT, ksh, and scripting languages with string processing and preferably socket functionality are also able to be used for CGI scripting; compiled languages like C++, Visual Basic, and Java can also be used like this. All Perl interpreters, ooRexx, PHP, and more recent versions of VBScript and JScript can use sockets for TCP/IP and usually UDP and other protocols for this.

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

Версия Windows Поставляемая версия WSH Последняя перераспределяемая версия Windows 95 Нет (отдельный перераспределяемый пакет) 5.6 Windows NT 4.0 Нет (отдельный перераспределяемый пакет) 5.6 Windows CE 3.0 1.0 (необязательная установка на установочном диске) 2.0 Windows 98 1.0 5.6 Windows 98 Second Edition 1.0 5.6 Windows 2000 2.0 (также известна как WSH 5.1) 5.7 Windows 2000 SP3, SP4 и SP5 5.6 5.7 Windows Me 2.0 (также известна как WSH 5.1) 5.6 Windows XP 5.6 5.7 Windows XP SP3 5.7 Неприменимо Windows Server 2003 5.6 5.7 Windows Vista 5.7 Неприменимо Windows Server 2008 5.7 Неприменимо Windows 7 5.8 Неприменимо Windows Server 2008 R2 5.8 Неприменимо Windows 8 5.8 Неприменимо Windows Server 2012 5.8 Неприменимо Windows 10 5.812 Неприменимо Windows Server 2016 5.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 Service Pack 3, версия 5.7 является единственной версией, доступной от Microsoft, а более новые версии включены в последующие выпуски Windows.