stringtranslate.com

Хост скриптов Windows

Microsoft Windows Script Host ( WSH ) (ранее называвшийся Windows Scripting Host ) — это технология автоматизации для операционных систем Microsoft Windows , которая обеспечивает возможности сценариев, сопоставимые с пакетными файлами , но с более широким спектром поддерживаемых функций. Этот инструмент впервые был предоставлен в Windows 95 после сборки 950a на установочных дисках как дополнительная установка, настраиваемая и устанавливаемая с помощью Панели управления , а затем стандартный компонент Windows 98 (сборка 1111) и последующих и Windows NT 4.0 сборка 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]

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

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

Движки WSH включают в себя различные реализации для Rexx , ooRexx , 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 описывает его как инструмент администрирования . [5] WSH предоставляет среду для запуска сценариев — он вызывает соответствующий механизм сценариев и предоставляет набор служб и объектов, с которыми сценарий может работать. [5] Эти сценарии могут быть запущены в режиме графического интерфейса ( WScript .exe) или в режиме командной строки ( CScript .exe), или из объекта COM ( wshom .ocx), предлагая пользователю гибкость для интерактивных или неинтерактивных сценариев. [6] Инструментарий управления Windows также может быть создан с помощью этих средств.

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

WSH реализует объектную модель , которая предоставляет набор интерфейсов Component Object Model (COM). [7] Таким образом, в дополнение к 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 в качестве макроязыка. [8]

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

Начиная с самых последних релизов и возвращаясь к нескольким версиям, программируемость 4NT / Take Command в последних реализациях (с помощью "@REXX" и аналогичного для Perl, Python, Tcl, Ruby, Lua, VBScript, JScript и т. д.) обычно использует движок WSH. [12] Эмулятор терминала ZOC получает возможность программирования в Rexx с помощью внешнего интерпретатора, один из которых поставляется вместе с программой, а альтернативные интерпретаторы Rexx могут быть указаны в конфигурации программы. [13] [14] Набор инструментов MKS предоставляет 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 for Applications. Эти инструменты используются для добавления возможностей сценариев и макросов в разрабатываемое программное обеспечение и могут быть найдены, например, в более ранних версиях Host Explorer . Многие другие языки также могут быть использованы таким образом. Другие языки, используемые для написания сценариев программ, включают Rexx, Tcl, Perl, Python, Ruby и другие, которые поставляются с методами управления объектами в операционной системе, а также программами электронных таблиц и баз данных. [16] Исключением является то, что эмулятор терминала 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. [17] [18] [19]

Примеры

Первый пример очень прост; он показывает некоторый VBScript , который использует корневой объект WSH COM "WScript" для отображения сообщения с кнопкой 'OK'. При запуске этого скрипта будет вызван движок CScript или WScript и предоставлена ​​среда выполнения.

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

WScript . Echo "Привет, мир" WScript . Выход 

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

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

WSH.Echo ( "Привет , мир" ) ; WSH.Quit ( ) ;

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

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

<job> <script language= "VBScript" > MsgBox "привет мир (из vb)" </script> <script language= "JScript" > WSH.echo("привет мир (из js)"); </script> </job>           

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

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

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

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

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

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

Были предложения по созданию движков для других языков, таких как LotusScript , SaxBasic, BasicScript, KiXtart , awk , bash , csh и других оболочек Unix, 4NT , cmd.exe (оболочка Windows NT), Windows PowerShell , DCL , C , C++ , Fortran и других. [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 и другие протоколы для этого.

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

Распространяемую версию 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.

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

Ссылки

  1. ^ ?MSDN, «Хост сценариев Windows» и «VBScript»
  2. ^ MSDN, выпуск от апреля 2000 г., «Windows Scripting Host»
  3. Библия VBScript (1999)
  4. ^ Windows 2000 Server Resource Kit (документация)
  5. ^ ab "What Is WSH?". msdn.microsoft.com . 24 октября 2011 г. Архивировано из оригинала 7 января 2018 г. Получено 30 апреля 2018 г.
  6. ^ "Windows Script Host Basics". msdn.microsoft.com . 24 октября 2011 г. Архивировано из оригинала 8 августа 2017 г. Получено 30 апреля 2018 г.
  7. ^ "Windows Script Host Object Model". msdn.microsoft.com . 24 октября 2011 г. Архивировано из оригинала 8 августа 2017 г. Получено 30 апреля 2018 г.
  8. ^ MSDN "VBA"
  9. ^ Руководство пользователя Paint Shop Pro 8
  10. ^ Справка Paint Shop Pro 8, «Автоматизация»
  11. ^ основной файл справки, Passport для 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 - Antivirus & Security Software for Home & Business". AVG.com . Архивировано из оригинала 21 февраля 2006 года . Получено 30 апреля 2018 года .
  21. ^ LLC), Тара Мейер (Aquent (30 июня 2006 г.). «Providing a Secure eXPerience». msdn.microsoft.com . Архивировано из оригинала 10 ноября 2017 г. . Получено 30 апреля 2018 г. .
  22. ^ Windows Script Host 5.6 может похвастаться интеграцией с Windows XP, безопасностью и новой объектной моделью. Архивировано 18 февраля 2008 г. на Wayback Machine.
  23. ^ CasioCalc.com, сообщения от 15.09.2016
  24. ^ "Форум Notes/Domino 4 и 5: RE: Предложение: сделать LotusScript скриптовым движком для Windows Scripting Host". Архивировано из оригинала 21.03.2015 . Получено 12.03.2015 .
  25. ^ HTML-файл справки ASCI
  26. ^ Сайт ASCI

ссылки