Материал из РУВИКИ — свободной энциклопедии

Сервер сценариев Windows

Сервер сценариев Windows
Логотип программы Сервер сценариев Windows
Тип технология автоматизации
Разработчик Microsoft
Операционная система Microsoft Windows
Последняя версия 5.812
Лицензия проприетарная, коммерческая
Сайт docs.microsoft.com/en-us…

Сервер сценариев Windows — технология автоматизации для операционных систем Microsoft Windows, предоставляющая возможности сценариев, схожие с пакетными файлами, но с более широким набором поддерживаемых функций. Ранее также назывался Windows Scripting Host. Впервые предоставлен для Windows 95 (после сборки 950a) на инсталляционных дисках как дополнительная установка через Панель управления, после чего стал стандартным компонентом Windows 98 (Build 1111) и следующих версий, а также Windows NT 4.0 (Build 1381) начиная с пакета обновления Service Pack 4. WSH также является средством автоматизации для Internet Explorer (начиная с версии 3.0); тогда же VBScript стал средством автоматизации в Microsoft Outlook 97[1]. Сервер сценариев Windows также доступен для Windows CE 3.0 и последующих (включая движки VBScript и JScript как дополнительные компоненты); существуют сторонние движки, такие как Rexx и другие интерпретации BASIC[2].

Технология не зависит от языка сценариев, так как использует различные движки Active Scripting. По умолчанию поддерживаются JScript (.js, .jse) и VBScript (.vbs, .vbe).

Пользователи могут устанавливать другие движки сценариев, например, PerlScript. Для языконезависимых сценариев применяется расширение файлов WSF (Windows Script File), которое позволяет объединять несколько сценариев и языков в одном файле.

Для WSH существуют движки для Rexx, ooRexx (до версии 4.0.0), BASIC, Perl, Ruby, Tcl, PHP, JavaScript, Delphi, Python, XSLT и других языков.

Сервер сценариев Windows по умолчанию устанавливается в Windows 98 и последующих версиях Windows, а также при установке Internet Explorer 5 и новее. Начиная с Windows 2000, WSH можно использовать для сценариев входа в систему.

Возможности

[править | править код]

Сервер сценариев Windows используется для самых разных задач, включая сценарии входа, администрирование и автоматизацию рутинных операций. Microsoft описывает его как средство администрирования[3]. WSH предоставляет среду для выполнения сценариев: вызывает соответствующий движок и предоставляет набор доступных служб и объектов[3].

Сценарии могут запускаться в режиме графического интерфейса (WScript.exe), из командной строки (CScript.exe) или через COM-объект (wshom.ocx), что обеспечивает гибкость использования для интерактивных и автоматических сценариев[4]. Также WSH позволяет автоматизировать Windows Management Instrumentation.

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

WSH реализует объектную модель, доступную через интерфейсы COM[5]. Это позволяет использовать WSH для автоматизации любых программ Windows с поддержкой COM, а также для взаимодействия между прикладными программами с помощью различных языков сценариев и технологий доступа к данным (ODBC, SQL и др.).

Функциональность VBA в офисных приложениях (Microsoft Office, Apache OpenOffice, Corel WordPerfect Office и др.) независима от движков WSH, однако Outlook 97 использует VBScript в качестве языка макросов[6].

Сценарии на Python (через ActiveState PythonScript), а также на PerlScript, ooRexxScript, PHPScript, RubyScript, LuaScript, XLNT и других языках, могут автоматизировать широкий круг программ — в том числе эмуляторы терминала (SecureCRT, ZOC, Passport), FTP-клиенты (SecureFX), офисные продукты и др. Некоторые программы, такие как Paint Shop Pro и Passport, используют собственный встроенный интерпретатор Python или Rexx, не связанный с внешними движками WSH.

VBScript, JScript и некоторые сторонние движки поддерживают кодирование сценариев для защиты исходного кода от просмотра (например, .vbe, .jse).

Любой поддерживаемый движок WSH может использоваться для CGI-сценариев в серверных продуктах Windows. Большинство доступных движков (включая сторонние) поддерживают работу с сетевыми протоколами и файловой системой.

Существуют также схожие технологии, как WinWrap Basic, SaxBasic, и другие, предоставляющие макросы и автоматизацию для специализированных программ (например, Host Explorer). Автоматизировать приложения (базы данных, электронные таблицы, текстовые процессоры, эмуляторы терминала) можно практически на любом языке сценариев при наличии соответствующего движка.

В последних версиях оболочки Take Command и связанных инструментов командой «script» можно получить список установленных движков сценариев[7].

Самый простой пример — сценарий на VBScript, использующий объект «WScript» для вывода сообщения с кнопкой OK:

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

WScript.Echo "Hello world"
WScript.Quit

Сценарии WSH можно также писать на JScript:

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

WSH.Echo("Hello world");
WSH.Quit();

Кроме того, код разных языков может быть объединён в одном WSF-файле:

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

<job>
<script language="VBScript">
  MsgBox "hello world (from vb)"
</script>
<script language="JScript">
  WSH.echo("hello world (from js)");
</script>
</job>

Безопасность

[править | править код]

Через WSH возможно автоматизировать работу приложений Windows, однако это же позволяет создавать вредоносные программы и вирусы, использующие эти возможности, поэтому некоторые эксперты рекомендуют отключать службу сценариев в целях безопасности[8]. Антивирусные программы могут предоставлять средства управления запуском сценариев .vbs и других форматов.

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

С помощью Политик ограничения программ (Software Restriction Policies), появившихся в Windows XP, можно разрешать исполнение только тех сценариев, которые расположены в доверенных каталогах, имеют известную MD5-сумму или подписаны доверенным издателем, что повышает защищённость системы[6].

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

[править | править код]

Примечание: Все перечисленные ниже движки могут использоваться для CGI-программирования в Windows; скрипты для CGI-серверов могут иметь отличные расширения файлов (.cgi и др.). WSH поддерживает сценарии с несколькими языками в одном файле (.wsf), а также XML и расширенный HTML для сетевого программирования.

Название движка Реализуемый язык Базовый язык Расширения файлов Наличие Разработчик Статус Дата первого выпуска Поддержка кодированных сценариев Примечания
VBScript Microsoft VBScript Microsoft Visual Basic .vbs По умолчанию установлен Microsoft стандартная установка 1999 Да, .vbe Стандартный движок сценариев Windows
JScript Microsoft JScript ECMAScript .js По умолчанию установлен Microsoft стандартная установка 1999 Да, .jse Стандартный движок JavaScript
WinWrap Basic WinWrap Basic Basic .wwb В составе WWB Polar Engineering Стандартная функциональность WWB; Поддержка .NET и COM 2004 Да
PerlScript Perl Perl 5 .pls В составе ActiveState Perl ActiveState открытое ПО 1999 Да (сообщалось)
PScript Perl Perl 5, CGI .p, .ps В составе MKS Toolkit MKS проприетарное/коммерческое ПО 2001
XBScript xBase Scripting Engine xBase (Clipper) .xbs, .prg В составе XBScript XBScript software проприетарное/коммерческое ПО
LotusScript WSH LotusScript Microsoft Visual Basic (см. выше) .nsf Сторонняя загрузка Service Desk Plus бесплатное ПО 2001
RexxScript Rexx Rexx .rxs, .rx, .rex В составе некоторых реализаций Rexx Различные бесплатное ПО 1998
ooRexxScript Open Object REXX REXX .rxs В составе Open Object Rexx или стороннее ПО Open Object Rexx team открытое ПО
PythonScript Python Python .pys SourceForge и ActivePython Pywin32 project открытое ПО
TclScript Tcl/Tk Tcl/Tk .tcls SourceForge ActiveState или сторонние открытое ПО
ActivePHPScript PHP PHP .phps В составе PHP PHP team открытое ПО
PHPScript PHP PHP .phps В составе PHP PHP team открытое ПО Ранняя версия ActivePHPScript
RubyScript Ruby Ruby .rbs В составе Ruby Ruby team открытое ПО Да
XLNTScript XLNT DIGITAL Command Language (DCL) .xcs В составе XLNT Advanced Systems Concepts, Inc. проприетарное/коммерческое ПО 1997 Среда сценариев DCL для Windows
LuaScript Lua Lua .lua В составе Lua Lua organisation открытое ПО
Object REXX engine Object REXX Rexx .rex, .rxs В составе IBM Object REXX IBM проприетарное/коммерческое ПО 2002
XML Engine XML-разбор Extended HTML, XML .xml В составе многих реализаций XML Elf Data неофициальная стандартная установка 2000 Также Macintosh
Kixtart WSH Engine Kixtart KixTart, MS-DOS, Windows 95/NT shell .kix В составе KixStart Microsoft Netherlands Windows Resource Kits и другие ресурсы 1996 Можно скачать у Microsoft
NullScript NullScript Null language .ns В составе NullScript NullScript Organisation Windows Resource Kits и другие ресурсы 1999
ForthScript Forth Forth .fth, др. В составе Forth DMOZ открытое ПО
Haskell Script Haskell Haskell .hsk (предл.), др. Сторонняя загрузка открытое ПО
XSLT WSH Engine XSLT XSLT .xslt Сторонняя загрузка открытое ПО
CobolScript WSH Engine Cobol Cobol .cbl, .cob, .cb Fujitsu Cobol 3 — бесплатно для образования Фирма Fujitsu проприетарное ПО
Delphi scripting engine Object Pascal (Delphi) Delphi, вариант Pascal .dlp, .del, . В некоторых дистрибутивах Delphi проприетарное/коммерческое ПО 2003
DMDScript DMDScript D .dmd DMD, скачивание бесплатное ПО (веб-версия) 2014 DMD
C# Script C# Microsoft C#.NET .cs, .c# Исходный код доступен открытое ПО 2013
Small C Scripting Engine C (K&R, ANSI) C .c Различные источники, интернет бесплатное ПО 2009
JavaScript WSH Engine JavaScript/Java Java и производные .java, .j и др. С многими реализациями JavaScript Sun и др. бесплатное ПО
Take Command WSH Engine 4NT/Take Command TCC — современная версия 4NT .btm, .cmd, .bat и др. JP Software проприетарное ПО 2015 На ранней стадии развития
92Script WSH Engine TI-89/92+/Voyager 200, TI-Basic Calculator TI-Basic .92bs Веб-/FTP-сайты проектов Независимые разработчики Экспериментальный, открытое ПО 2014 «возможно» Бета Q4 2015, графика — позже
48Script WSH Engine HP-48, язык программирования калькулятора HP 48 PL, Forth, Basic, Lisp .48s Веб-/FTP-сайты проектов Независимые разработчики экспериментальный 2015 в планах Статус на 30.09.2015. Примеси Lisp, Basic, Fortran и др.
Fortran Script Fortran Fortran 77 .for, .ftn, .f77, .f90, .f95 Различные источники Различные Экспериментальный, академический, условно-бесплатный, коммерческий, открытое ПО 2000
PascalScript Object Pascal Pascal 7 .pas, .ops Object Pascal RemObjects бесплатное ПО 2001 Можно использовать напрямую в Delphi
Lisp WSH Engine Lisp Lisp .lisp, .lsp Различные реализации Lisp AutoLisp и др. Бесплатное ПО или условно-бесплатное ПО
BESEN ECMA-JavaScript Java и производные .bes, .bsn SourceForge BESEN Organisation открытое ПО 2011
ECMAScript WSH engines Java и производные Различные Различные Различные Различные Экспериментальные, бесплатные, коммерческие 2005 Существует множество реализаций ECMAScript с поддержкой WSH
CFXScript WSH Engine Язык калькуляторов Casio CFX-9850 и fx Casio Calculator PL (CFW) .cfxb Веб-/FTP-сайты проектов Независимые разработчики экспериментальный 2015 в планах[10] Поддержка Basic, Forth, Fortran и др.
SharpCalcScript WSH Engine Язык программирования калькуляторов Sharp Sharp S-Basic (NeusSFortran) .scsb Веб-/FTP-сайты проектов Независимые разработчики экспериментальный 2015 в планах Включает S-Basic для карманных ПК Sharp

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

Наиболее часто используемые движки для автоматизации и CGI-скриптов — VBScript, JScript, PythonScript, PerlScript, ActivePHPScript, ooRexxScript. В среде Windows также часто применяются оболочки cmd.exe, 4NT, ksh и языки с поддержкой обработки строк и сетевых протоколов.

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

[править | править код]
Версия 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. Версия 5.7 была доступна для Windows 2000, Windows XP и Windows Server 2003. После марта 2006 года отдельные дистрибутивы для старых ОС (Windows 9x, Windows NT 4.0) были удалены с сайта Microsoft.

Начиная с Windows XP SP3, для загрузки доступна лишь версия 5.7, а более новые версии поставляются с выпусками Windows.

Версия Входит в состав Также доступен для
1.0 Windows CE 3.0 (доп. установка)
Windows 98, Windows 98 SE
Windows 95
Windows NT 4.0 SP3 и новее
2.0 (также WSH 5.1) Windows 2000 RTM, SP1, SP2
Windows Me
Windows 95
Windows NT 4.0 SP4 и новее
Windows 98
5.6 Windows 2000 SP3 и новее
Windows XP RTM, SP1, SP2
Windows Server 2003
Windows 9x
Windows NT 4.0 SP6a и новее
5.7 Windows XP SP3
Windows Vista
Windows Server 2008
Windows 2000 SP4 и новее
Windows XP
Windows Server 2003
5.8 Windows 7
Windows 8
Windows 8.1
Windows Server 2008 R2
Windows Server 2012
Windows Server 2012 R2
Не применимо
5.812 Windows 10 и новее
Windows Server 2016 и новее
Не применимо

Примечания

[править | править код]
  1. Windows Script Host overview (англ.). Microsoft Docs. Microsoft. Дата обращения: 30 апреля 2024. Архивировано 31 марта 2025 года.
  2. MSDN — Windows Scripting Host (англ.). Microsoft Docs. Microsoft. Дата обращения: 30 апреля 2024. Архивировано 18 июля 2006 года.
  3. 1 2 What Is WSH? (англ.). msdn.microsoft.com (24 октября 2011). Дата обращения: 30 апреля 2018. Архивировано 7 января 2018 года.
  4. Windows Script Host Basics (англ.). msdn.microsoft.com (24 октября 2011). Дата обращения: 30 апреля 2018. Архивировано 8 августа 2017 года.
  5. Windows Script Host Object Model (англ.). msdn.microsoft.com (24 октября 2011). Дата обращения: 30 апреля 2018. Архивировано 8 августа 2017 года.
  6. 1 2 Windows Script Host 5.6 Boasts Windows XP Integration, Security, New Object Model (англ.). msdn.microsoft.com. Дата обращения: 30 апреля 2018. Архивировано 18 февраля 2008 года.
  7. Take Command 18.00 help: SCRIPT command (англ.). jpsoft.com. Дата обращения: 30 апреля 2018. Архивировано 2 мая 2017 года.
  8. Norman — Antivirus & Security Software for Home & Business (англ.). AVG.com. Дата обращения: 30 апреля 2018. Архивировано 21 февраля 2006 года.
  9. Meyer (Aquent LLC), Tara Providing a Secure eXPerience (англ.). msdn.microsoft.com (30 июня 2006). Дата обращения: 30 апреля 2018. Архивировано 10 ноября 2017 года.
  10. CasioCalc.com project, 15.09.2016 (англ.). CasioCalc.com. Дата обращения: 30 апреля 2018.
  11. Notes/Domino 4 and 5 Forum: RE: Suggestion: Make LotusScript a script engine for Windows Scripting Host (англ.). Дата обращения: 12 марта 2015. Архивировано 21 марта 2015 года.
  12. ASCI XLNT help (англ.). Advanced Systems Concepts. Дата обращения: 30 апреля 2018.