Открыть сервисСервис

Windows Script Host

Windows Script Host (WSH) — это компонент операционной системы Microsoft Windows, предназначенный для выполнения скриптов (сценариев) на различных языках программирования, в первую очередь VBScript (Visual Basic Scripting Edition) и JScript (реализация языка JavaScript от Microsoft). WSH предоставляет среду выполнения, которая позволяет автоматизировать задачи, управлять системными настройками и взаимодействовать с объектами Windows, не требуя компиляции кода в исполняемый файл. Компонент впервые был включён в состав Windows 95 (в составе Internet Explorer 3.0) и Windows NT 4.0, а затем стал стандартной частью всех последующих версий Windows, вплоть до Windows 11.

История

Предпосылки и создание

До появления WSH автоматизация задач в Windows была возможна в основном с помощью пакетных файлов (.bat, .cmd), которые имели ограниченные возможности по работе с файловой системой, реестром и сетевыми ресурсами. В середине 1990-х годов Microsoft стремилась расширить возможности скриптования, интегрировав его с объектной моделью Windows (COM). В 1996 году был выпущен Windows Script Host, который изначально назывался Windows Scripting Host. Первая версия (WSH 1.0) поставлялась с Internet Explorer 3.0 и поддерживала только VBScript и JScript.

Развитие

В 1997 году вышла WSH 2.0, которая была включена в состав Internet Explorer 4.0 и Windows 98. Эта версия добавила поддержку новых объектов, таких как WScript.Shell и WScript.Network, что значительно расширило возможности скриптов по управлению системой. В Windows 2000 и Windows XP WSH стал полноценным системным компонентом, а его версия (5.6) включала улучшенную поддержку отладки и безопасности. Последняя крупная версия, WSH 5.7, была выпущена в 2007 году для Windows Vista и более поздних систем. С тех пор Microsoft не выпускала новых версий WSH, сосредоточившись на развитии PowerShell, который стал основным инструментом автоматизации в Windows.

Архитектура и устройство

Компоненты

WSH состоит из двух основных исполняемых файлов:

  • wscript.exe — оконная версия, которая запускает скрипты в графическом режиме. При использовании этой версии скрипт может выводить диалоговые окна, запрашивать ввод данных и взаимодействовать с пользователем через GUI.
  • cscript.exeконсольная версия, которая запускает скрипты в командной строке (текстовом режиме). Она предназначена для автоматизации задач, не требующих взаимодействия с пользователем, и выводит результаты в окно консоли.

Оба файла находятся в системной папке C:\Windows\System32\.

Языки и движки

WSH не является языком программирования, а представляет собой среду (хост), которая загружает и выполняет скрипты с помощью подключаемых языковых движков. По умолчанию в Windows встроены два движка:

Пользователи могут устанавливать дополнительные движки для других языков, например, Perl, Python или Ruby, если они предоставляют COM-интерфейс, совместимый с WSH.

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

WSH предоставляет скриптам доступ к объектной модели Windows через COM (Component Object Model). Ключевые объекты:

  • WScript — корневой объект, предоставляющий методы для вывода сообщений (Echo), завершения скрипта (Quit), создания других объектов (CreateObject) и работы с аргументами командной строки.
  • WScript.Shell — объект для работы с реестром, ярлыками, запуска приложений, управления окнами и системными переменными окружения.
  • WScript.Network — объект для управления сетевыми ресурсами: подключение/отключение сетевых дисков, принтеров, получение информации о текущем пользователе и домене.
  • Scripting.FileSystemObject — объект для работы с файловой системой: чтение, запись, создание, удаление файлов и папок, работа с дисками.

Применение

Администрирование и автоматизация

WSH широко использовался системными администраторами для автоматизации рутинных задач:

  • Создание и удаление учётных записей пользователей.
  • Настройка параметров реестра.
  • Управление службами Windows.
  • Выполнение резервного копирования и синхронизации файлов.
  • Настройка сетевых принтеров и дисков.

Логин-скрипты

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

Разработка и тестирование

Разработчики использовали WSH для быстрого прототипирования и тестирования идей, не требующих компиляции. Также WSH применялся для создания простых утилит, таких как конвертеры файлов, парсеры логов или инструменты для работы с COM-объектами.

Безопасность и критика

Уязвимости и вредоносное ПО

WSH стал одной из наиболее критикуемых функций Windows из-за своей роли в распространении вредоносного программного обеспечения. Поскольку скрипты VBScript и JScript выполняются в интерпретируемой среде, злоумышленники использовали WSH для:

  • Распространения вирусов и червей. Например, знаменитый вирус «ILOVEYOU» (2000 год) распространялся через вложения электронной почты, содержащие скрипты VBScript. При запуске он заражал систему, перезаписывал файлы и рассылал себя по контактам.
  • Выполнения произвольного кода. Скрипты могли запускать другие программы, изменять реестр, скачивать и устанавливать вредоносное ПО без ведома пользователя.
  • Фишинга и кражи данных. Скрипты могли запрашивать пароли или перенаправлять пользователей на поддельные сайты.

Меры безопасности

Microsoft предприняла ряд мер для снижения рисков:

  • В Windows Vista и более поздних версиях по умолчанию отключена возможность запуска WSH через двойной клик по файлу .vbs или .js в проводнике. Пользователь должен явно разрешить выполнение через диалоговое окно.
  • В Windows 10 и Windows 11 WSH по умолчанию отключён для новых установок, особенно в версиях для образовательных учреждений (Windows 10 Education, Windows 11 Education).
  • Групповые политики позволяют администраторам полностью отключить WSH на компьютерах домена.
  • Антивирусные программы и брандмауэры часто блокируют выполнение скриптов, загруженных из интернета.

Критика и устаревание

Несмотря на свою полезность, WSH подвергается критике за:

  • Низкую безопасность. Интерпретируемый код легко анализируется и модифицируется злоумышленниками.
  • Отсутствие развития. С 2007 года Microsoft не выпускает новых версий WSH, а VBScript и JScript постепенно выводятся из эксплуатации. В Windows 11 VBScript объявлен устаревшим компонентом.
  • Сложность отладки. Встроенные средства отладки WSH ограничены по сравнению с современными средами разработки.

Замена и современное состояние

PowerShell

Основной заменой WSH в современной Windows является PowerShell — более мощная и безопасная среда автоматизации, основанная на .NET Framework. PowerShell предоставляет:

  • Объектно-ориентированный конвейер.
  • Встроенную поддержку управления системой, реестром, службами, Active Directory.
  • Расширенные средства безопасности, включая политики выполнения скриптов (Execution Policy).
  • Интеграцию с .NET, что позволяет использовать все возможности платформы.

Совместимость

Несмотря на устаревание, WSH по-прежнему поддерживается в Windows 10 и Windows 11 для обратной совместимости. Многие старые корпоративные приложения и скрипты продолжают использовать WSH, и их замена на PowerShell требует значительных усилий. Однако Microsoft рекомендует разработчикам и администраторам переходить на PowerShell для всех новых проектов.

Интересные факты

  • WSH позволяет выполнять скрипты, написанные на разных языках в одном файле, используя тег <script> в XML-подобном формате.
  • В Windows 98 и Windows Me WSH был встроен в операционную систему, но не имел графического интерфейса для управления.
  • Некоторые утилиты, такие как scrrun.dll (библиотека для работы с файловой системой), являются частью WSH и используются другими компонентами Windows.

Источники

  • Microsoft Docs: Windows Script Host Overview
  • Microsoft Security Response Center: WSH and Malware
  • TechNet: Windows Script Host 5.7
  • Wikipedia: Windows Script Host
  • «Inside Windows Scripting Host» — статья в журнале Windows IT Pro (2000)