Blog of Khlebalin Dmitriy
(Дорогу осилит идущий…)
Сервер сценариев Windows (WSH)
Сервер сценариев Windows (Windows Script Host, WSH) не зависит от языка сценария и устанавливается в системах Windows 98/ME, Windows 2000/XP и Windows Server 2003 как стандартное средство. Также его можно установить в системах Windows 95 и Windows NT 4.0. Компания Microsoft разработала и поддерживает ядро сценариев как для Visual Basic, так и для JavaScript. В составе Windows XP и Windows Server 2003 поставляется WSH версии 5.6.
Назначение сервера сценариев
Сервер сценариев позволяет применять в операционных системах Windows простые мощные и гибкие сценарии. Раньше единственным языком сценариев, поддерживаемым операционной системой Windows, был язык команд MS-DOS (командный файл). Хотя это быстрый и компактный язык в сравнении с языками VBScript и JScript, он обладает весьма ограниченными возможностями. В настоящее время архитектура сценариев ActiveX позволяет в полной мере использовать все средства таких языков сценариев, как VBScript и JScript, одновременно сохраняя совместимость с набором команд MS-DOS.
Примечание
Использование сценариев для выполнения административных задач также рассматривается в главе 11 «Управление системами Windows в корпоративной среде».
Компания Microsoft поставляет три среды, предназначенных для выполнения языков сценариев на платформах Windows:
- Internet Explorer;
- Internet Information Server или WWW Server в составе служб Internet Information Services;
- Windows Scripting Host.
Internet Explorer позволяет выполнять сценарии на машинах клиентов внутри HTML-страниц.
Internet Information Server поддерживает работу со страницами ASP, позволяющими выполнять сценарии на веб-сервере. Другими словами, выполнение сценариев на сервере становится возможным в сетях Интернет и интранет.
Сервер сценариев Windows позволяет выполнять сценарии прямо на рабочем столе операционной системы Windows или в окне командной консоли, для этого не нужно встраивать их в документ HTML. В процессе работы сервер сценариев чрезвычайно экономно использует память, что очень удобно для выполнения неинтерактивных сценариев, например сценария входа в сеть, административного сценария, и автоматизации операций, выполняемых на машине.
Запуск сервера сценариев из командной строки
Для запуска сервера сценариев из командной строки используйте утилиту Cscript.exe в соответствии со следующим синтаксисом: cscript имя_сценария [параметры_сервера_сценариев] [параметры_сценария], где
- имя_сценария — это имя файла сценария с расширением, например, Chart.vbs;
- параметры_сервера_сценариев — включают и отключают различные средства сервера сценариев. Они всегда предваряются двумя слэшами (//);
- параметры_сценария — передаются в сценарий. Они всегда предваряются одним слэшем (/).
Ни один из параметров не является обязательным. Однако нельзя указать параметры сценария без самого сценария. Если вы не указываете ни одного параметра, Cscript.exe выдает на экран синтаксис своего запуска и допустимые параметры сервера сценариев (табл. 10.6).
Таблица 10.6. Параметры сервера сценариев, поддерживаемые Cscript.exe
Параметр | Описание |
//B | Пакетный режим. Не отображает на экране сообщений об ошибках и приглашения пользователей |
//D | Активизирует функцию отладки |
//E=engine | Задает ядро, используемое для выполнения сценария |
//H:Cscript или Wscript | Устанавливает Cscript.exe или Wscript.exe в качестве приложения, выбираемого по умолчанию для выполнения сценариев. По умолчанию установлен Wscript.exe |
//I | Интерактивный режим (выбирается по умолчанию; режим, обратный задаваемому параметром / /в) |
//Job: xxx | Выполняет задание WSF |
//Logo | Отображает на экране заставку (выбирается по умолчанию; режим, обратный задаваемому параметром //NoLogo) |
//NoLogo | Запрещает вывод заставки |
//S | Сохраняет текущие параметры командной строки для этого пользователя |
//T:nn | Время ожидания в секундах. Максимальное время, в течение которого может выполняться сценарий. (По умолчанию ограничение не устанавливается.) |
Этот параметр используется для предотвращения слишком длительного выполнения сценариев. Устанавливается специальный таймер. Когда время выполнения превышает установленное значение, CSCRIPT прерывает работу ядра сценариев и завершает процесс | |
//X | Задает выполнение сценария в среде отладчика |
//U | Использует кодировку Unicode для перенаправленного консольного ввода/вывода |
//? | Показывает параметры и синтаксис команды Cscript.exe |
Примеры простых сценариев можно скачать в виде пакета Sample Scripts no адресу http://msdn.microsoft.com/scripting/default.htm7/scripting/windowshost.
Например, для того чтобы запустить сценарий Chart.vbs:
1. В меню Start (Пуск) выберите команду Run (Выполнить).
2. В командной строке выполните следующие команды: cscript «устройство:»\»/Саталог»\chart.vbs //logo или cscript «устройство:»\»Каталог»\chart.vbs //nologo
В системах Windows XP и Windows Server 2003 не обязательно указывать расширение сценариев: можно просто набрать с клавиатуры имя сценария или щелкнуть по нему мышью в окне программы Windows Explorer.
Запуск сценариев в среде Windows
Сценарий в среде Windows можно запустить тремя способами.
- Дважды щелкните на файле сценария или на соответствующем значке в окне My Computer (Мой компьютер), в окне программы Windows Explorer или в окне результатов команды Search (Поиск).
- В окне Run (Выполнить) введите с клавиатуры полное имя (включающее путь и расширение) выполняемого сценария и нажмите кнопку ОК.
- В окне Run (Выполнить) введите wscript.exe с указанием полного имени сценария и необходимых параметров сервера и сценария.
При запуске сценария с помощью WSH можно указать, какое приложение следует использовать — Cscript.Exe или Wscript.Exe. Приложение сервера, выбираемое по умолчанию, может быть установлено с помощью команды cscript //H:имя_сервера_сценариев.
Например, если вы устанавливаете в качестве приложения, выбираемого по умолчанию, Wscript.exe и выполняете сценарий с именем Chart.vbs, то Wscript.exe будет выбираться по умолчанию для всех файлов сценариев, имеющих расширение vbs.
Страница свойств сервера сценариев Windows позволяет устанавливать параметры, приведенные в табл. 10.7.
Таблица 10.7. Свойства сервера сценариев
Эквивалент параметра команды
(Отображать на консоли сведения о программе во время выполнения сценария)
Настройка индивидуальных свойств сценария. Файл с расширением wsh
С помощью страницы свойств модуля Wscript.exe можно установить глобальные параметры, касающиеся сразу всех сценариев, выполняемых на локальной машине. Однако также можно настроить индивидуальные параметры отдельно взятого сценария, позволяющие осуществлять жесткий контроль его выполнения. Свойства конкретного сценария сохраняются в файле с расширением wsh. Для его создания просто установите указатель мыши на файле сценария в окне программы Windows Explorer и нажмите правую кнопку. В появившемся контекстном меню выберите команду Properties (Свойства). На вкладке Script (Сценарий) измените стандартные свойства сценария, например максимальное время исполнения, и нажмите кнопку ОК. В результате в каталоге, где находится сценарий, будет создан файл с расширением wsh, имя которого совпадает с именем сценария. Он содержит индивидуальные настройки сценариев для WSH. Функции этого файла сходны с функциями файла PIF 16-разрядных приложений.
Чтобы запустить сценарий, для которого создан файл с расширением wsh, следует дважды щелкнуть мышью на файле *.wsh в окне программы Windows Explorer или использовать этот файл в качестве параметра для программы Wscript.exe или Cscript.exe в командной строке. Например: С:\>cscript Myscript.wsh
Поскольку в файле с расширением wsh хранятся значения параметров, используемых сценарием при выполнении, системный администратор может создать несколько версий файла с параметрами, ориентированных на различные группы пользователей внутри организации. Набор файлов с расширением wsh, относящийся к одному сценарию, может быть использован следующим образом.
- Администратор может создать отдельный файл *.wsh для определенной группы пользователей внутри организации. Это позволит осуществлять индивидуальный контроль определенных сценариев, выполняющихся в течение дня.
- Администратор может создать индивидуальные файлы *.wsh для конкретных пользователей внутри организации. Это позволяет осуществлять полный контроль ряда сценариев, используемых внутри организации.
- Индивидуальные файлы с расширением wsh могут быть созданы для сценариев входа пользователей в систему. Это позволяет администратору осуществлять индивидуальный контроль над рядом свойств сценариев, выполняемых на клиентских машинах при регистрации пользователя в системе.
Файл с расширением wsh представляет собой простой текстовый файл, формат которого сходен с форматом файла с расширением inf. Ниже приведен пример содержимого файла *.wsh.
[ScriptFile] Path=C: \WINNT\ Samples \WSH\ showprop. vbs [Options] Timeout=0 DisplayLogo=l BatchMode=0
avhelp
avhelp — компьютерная антивирусная помощь
Помощь в лечении компьютерных вирусов. Советы по защите компьютера.
Для повышения компьютерной безопасности можно запретить работу скриптов (сервер сценариев) и пакетных файлов (bat, cmd). Конечно, нужно учитывать специфику использования компьютера. Отключение скриптов негативно скажется на работе браузера Internet Explorer. Пакетные файлы тоже могут активно использоваться на компьютере. Убедитесь, что на компьютере используются другие браузеры и пользователь не работает с командными файлами.
Отключить сервер сценариев (Scripting Host) можно с помощью программы xp-AntiSpy или вручную через Реестр.
Для ручного отключения запустите regedit:
HKLM\Software\Microsoft\Windows Script Host\Settings
Строковый параметр Enabled равный «0» отключает работу скриптов. Чтобы включить измените значение 0 на 1.
:: Отключение обработки пакетных файлов
Для отключения пакетных файлов можно изменить реакцию системы при запуске файлов cmd и bat , например, на открытие таких файлов в Блокноте.
дефолтовое значение параметра «%1» %* меняем на NOTEPAD.EXE %1
дефолтовое значение параметра «%1» %* меняем на NOTEPAD.EXE %1
Теперь при попытке запуска командных файлов они просто будут открыты в Блокноте.
Далее рассмотрены reg -файлы для автоматизации этих процессов:
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\W indows Script Host\Settings]«Enabled»=dword:00000000Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\W indows Script Host\Settings]«Enabled»=dword:00000001Windows PowerShell. Выполнение сценариев отключено в этой системе
По умолчанию выполнение сценариев Windows PowerShell в системе запрещено. По соображениям безопасности все скрипты PowerShell должны быть подписаны цифровой подписью, данный метод называется — политика выполнения.
Если скрипт не соответствует этому условию, то выполнение сценариев PowerShell в системе запрещено. Это связано в первую очередь с тем, что в скрипте может находиться вредоносный код, который может нанести вред операционной системе.
PowerShell имеет несколько режимов выполнения, которые определяют, какой тип кода разрешается выполнять. Существует 5 различных режимов выполнения:
- Ограниченный (Restricted) — значение по умолчанию. Блокируется выполнение любых скриптов и разрешается работа интерактивных команд.
- Все подписанные (All Signed) — разрешено выполнение скриптов, имеющих цифровую подпись.
- Удаленные подписанные (Remote Signed) — локальные скрипты работают без подписи. Все скачанные скрипты должны иметь цифровую подпись.
- Неограниченный (Unrestricted) — разрешено выполнение любых скриптов. При запуске не подписанного скрипта, который был загружен из Интернета, программа может потребовать подтверждение.
- Обходной (Bypass) — ничего не блокируется, никакие предупреждения и запросы не появляются.
По умолчанию для PowerShell используется режим «Ограниченный». В этом режиме, PowerShell работает как интерактивная оболочка. Если вы ранее не настраивали PowerShell, то вместо работы скрипта вы увидите сообщение об ошибке, написанное красным шрифтом как на скриншоте ниже.
Самым безопасным способом решения этой проблемы является – изменение политики выполнения на неограниченную, запуск скрипта, и затем обратный возврат к ограниченной политике.
Для изменения политики выполнения на неограниченную, воспользуемся консолью PowerShell открытую с правами Администратора и выполним следующую команду:
После запуска команды вам будет предложено подтвердить изменение политики выполнения. Ответим Y ( Да ).
Теперь можно запустить скрипт. Однако, вы подвергаете систему серьезному риску, так что по окончании работы скрипта, не забудьте вернуть политику выполнения назад в ограниченный режим. Сделать это можно с помощью следующей команды:
После запуска команды вам будет предложено подтвердить изменение политики выполнения. Ответим Y ( Да )
Далее ниже представлены все команды для изменения политики выполнения.
Блокируется выполнение любых скриптов. Значение по умолчанию.
Разрешено выполнение скриптов, имеющих цифровую подпись.
Скрипты, подготовленные на локальном компьютере, можно запускать без ограничений, скрипты, загруженные из Интернета — только при наличии цифровой подписи.
Разрешено выполнение любых скриптов. При запуске не подписанного скрипта, который был загружен из Интернета, программа может потребовать подтверждение.
Ничего не блокируется, никакие предупреждения и запросы не появляются.
Для выполнения выше представленных команд без подтверждения изменения, воспользуйтесь параметром -Force , например выполните команду:
Теперь при выполнении команд не нужно подтверждать производимые изменения.