- Использование сценариев сервера сценариев Windows как CGI-сценариев
- Аннотация
- Дополнительная информация
- Ссылки
- Сервер сценариев Windows Script Host — подводим итоги
- Windows Script Host — вначале была командная строка…
- И был день, и была ночь, и пришел Windows Script Host
- «Привет Мир», или пишем первые примеры по Windows Script Host…
- script host
- Ответы (6)
- Blog of Khlebalin Dmitriy
- (Дорогу осилит идущий…)
- Сервер сценариев Windows (WSH)
Использование сценариев сервера сценариев Windows как CGI-сценариев
Аннотация
При попытке вызова сценария Visual Basic на веб-сервере в контексте сценария CGI, сценарий может не работать правильно. Наиболее вероятной причиной этого является, что обработчик сценариев обычно выполняется в контексте безопасности IUSR_Machine, созданные службами IIS при установке. К сожалению Cscript.exe (обработчик сценариев) требует наличия определенных записей реестра для пользователя IUSR_Machine. Поскольку куст HKEY_CURRENT_USER недоступен для IUSR_Machine, IIS будет загружать HKEY_USERS\. По умолчанию куста на его месте. Тем не менее HKEY_USERS\. Куст по умолчанию не содержит необходимые разделы и записи для обработчика сценариев. В этих случаях возникнет ошибка CGI, без дополнительной информации. Или если файл Cscript.exe была запущена в пакетном режиме, будет отображаться сообщение об ошибке, указывающее, что не удалось загрузить параметры для указанного пользователя. В этом документе показывается Настройка компьютера IIS для выполнения как сценарий CGI сценариев Visual Basic.
Дополнительная информация
В данной статье предполагается, что сервер сценариев Windows установлена на компьютере с сервером IIS; параметр установки по умолчанию для NT Option Pack для этого. Чтобы включить поддержку VBScript, выполните следующие действия:
Откройте командную строку. Чтобы сделать это, выполните следующие действия.
В меню Пуск выберите пункт Выполнить.
Введите команду cmdи нажмите кнопку ОК.
Перейдите в папку Inetpub\AdminScripts. (Это расположение зависит от установки Internet Information Server).
Введите следующие команды:
Cscript adsutil.vbs ЗАДАЙТЕ w3svc/CreateCGIWithNewConsole «1»
Cscript adsutil.vbs ЗАДАЙТЕ w3svc/CreateProcessAsUser «0»
Настройте расширение .vbs для сопоставления Cscript.exe в каталог %SYSTEMROOT%\System32. Для этого в консоли управления Microsoft. В частности действия по настройке для IIS4 таковы:
Запустите приложение IIS4 Консоли управления .
Изменение свойств веб-узла (щелкните правой кнопкой мыши веб-узел в дереве отображения и выберите Свойства).
Выберите вкладку Домашний каталог .
В окне Настройки приложения выберите конфигурацию.
На вкладке Сопоставления выберите Добавить.
Исполняемый файл будет иметь следующие действия на компьютере WinNT 4.0 (Убедитесь, что используется правильный путь к Cscript.exe на установочном WinNT):
Введите расширение .vbs .
Убедитесь, что установлены флажки Обработчиком сценария и Убедитесь, что существует файлов .
Сохраните файл, нажав кнопку OK, Применить, ОКи ОК еще раз.
С помощью редактора реестра, создайте следующие разделы и записи:
Убедитесь, что всем пользователям доступ на чтение для этих двух разделов. Теперь можно создайте следующие записи:
Теперь скопируйте файл сценария .vbs виртуального каталога на сервере, на котором есть разрешения на выполнение сценариев. По умолчанию каталог/Scripts будет иметь необходимые разрешения.
Вы сможете проверить конфигурацию работает и не создавая следующий сценарий:
Сохраните указанный сценарий в каталоге/Scripts как Test.vbs. Теперь можно вызовите с помощью любого браузера следующий URL-адрес сценария:
Примечание: все ситуации, где Cscript.exe сценарий запускается в контексте безопасности локальной системы или локальной системы, олицетворяя пользователя применяются те же ограничения. Изменения в реестр следует исправить эти ситуации.
Ссылки
Интернета сведения сервера электронной документации.
Сервер сценариев Windows Script Host — подводим итоги
Всем привет, с вами автор блога scriptcoding.ru. В этой статье мы сделаем заключительный анализ сервера сценариев Windows Script Host и его возможностей.
На данном блоге собралось уже достаточно примеров скриптов и обучающих статей, что бы написать действительно качественный обзор по Windows Script Host, да, я такой, люблю публиковать материалы в обратном порядке… По ходу статьи я приведу примеры программного кода для Windows Script Host (коротко — WSH), а пока немного лирического предисловия.
Операционная система изначально создавалась как платформа для программистов, это теперь, мы привыкли, что Windows – это красочный интерфейс пригодный для посиделок в социальных сетях, разговорах по скайпу и игре в компьютерные игры. Но как бы там не было, ОС это как не как программа, а любую программу нужно отлаживать и исправлять в ней ошибки. Это теперь мы привыкли, что есть мышка, а ведь когда то все делали ручками – все команды вводили вручную, и если программисту это не в дикость, то рядовому пользователю такая картина покажется дикостью… Но, хотя времена уже не те, Windows по прежнему позволяет решать административные вопросы без сторонних приложений…
Windows Script Host — вначале была командная строка…
Да, да, черный экран и взгляд в неизвестность… До появления Windows Script Host и PowerShell, командная строка являлась практический единственным средством для решения внештатных задач. Помню в детстве, мне частенько приходилось бегать с загрузочными дискетами и даже держать их в тайнике целыми стопками . Ну, а старый добрый Doom. Не знаю как теперь, но он у меня он работал только под управлением командной строки. Помню, в школе на уроках информатики нам приходилось изучать базовые команды CMD, типа, переход по каталогам и дискам, создание папок и файлов и так далее. Даже в нынешнее время приходится использовать базовые утилиты командной оболочки, взять тот же ping или ipconfig, когда я приходил к клиентам, у которых не работал интернет, эти утилиты шли в бой всегда..
Но, времена идут, и продвинутому пользователю хочется чего-то больше…
И был день, и была ночь, и пришел Windows Script Host
В простом варианте, сервер сценариев Windows Script Host – это программа, точнее две: wscript.exe (позволяет запускать сценарии в оконном интерфейсе) и cscript.exe (запуск скриптов в режиме командной строки). Так как Windows Script Host не требует установки и входит в состав практически всех версий Windows, то можно сразу приступать к программированию. У пользователя есть выбор, писать программный код на языке VBScript (файлы с расширением . vbs ) или JScript (файлы с расширением . js ). Те, кто самые ленивые, могут открыть текстовый блокнот и сразу приступить к делу, но лучше использовать редактор Notepad++. Я даже написал несколько статей по данному редактору, например — «Редактор Notepad++ — Знакомство».
Оба языка программирования vbscript и jscript являются разработкой компании Майкрософт, их код частично может выполняться в теле интернет страницы, хотя, более эффективней они используются как прикладные сценарии.
Некоторые преимущества сценариев Windows Script Host по сравнению с рядовыми файлами командной оболочки:
- Расширяемость возможностей за счет подключения внешних объектов. Объекты – это файлы (библиотеки) с набором различных функций для выполнения определенных задач: создание графического интерфейса (WindowSystemObject), работа со ссылками на сайте (Chilkat.Spider) или работа с протоколом HTTP (Компоненты для создания HTTP запроса), однако, Windows Script Host предоставляет и собственные объекты, например, работа с файловой системой (FileSystemObject), или взаимодействие с системой (WScript.Shell).
- Взаимодействие с Windows Management Instrumentation (Инструментарий управления Windows). WMI содержит практически неограниченные возможность для администрирования системы, с его помощью можно получить доступ практически к каждому элементу (как оборудование, так и системная информация).
«Привет Мир», или пишем первые примеры по Windows Script Host…
Пожалуй, я не буду нарушать традицию…
Вывод сообщения «Привет Мир» на языке Jscript :
Вывод сообщения «Привет Мир» на языке VBscript :
Как видим все довольно просто, но… хочется чего-то большего, поэтому приведу вам пример сценариев Windows Script Host, которые будут выводить список имен пользователей системы и их SID (уникальный идентификатор, который назначается каждой учетной записи):
Программный код на языке VBSCRIPT :
Программный код на языке JSCRIPT :
Как видим, не все так сложно, как бы казалось, кстати, данный пример я взял из книги Windows Script Host – новичок, там я собрал 132 примера сценариев на обоих языках. Я стараюсь всегда приводить программный код как на языке VBScript так и на языке Jscript, что бы можно было провести сравнительный анализ.
Хорошо, теперь придерживаясь этикета, давайте разберем программный код примеров.
Логика работы идентична, вначале происходит объявление переменных (ключевые слова dim и var). Видим, что имена переменных практически одинаковые, смотрите «Урок 2 по JScript — типы данных и переменные» и «Урок 2 по VBScript: Переменные». Обратите внимание, что в отличии от прикладных языков программирования, в скриптах Windows Script Host не нужно указывать тип данных .
Переменная list будех хранить основную информацию относительно имени и значении SID. Мы присваиваем переменной сначала информативную фразу и добавляем дважды перевод строки (\n и vbCrLf). Далее с помощью функции CreateObject происходит подключение внешних классов WMI, которые и позволят выполнить поставленную задачу.
Далее нам надо обработать все найденные идентификаторы. Для этих целей мы применили цикл FOR и FOR EACH – смотрите статьи «Урок 6 по VBScript: Циклы for…next и for each…next» и «Урок 9 по JScript — оператор цикла for». Все найденные результат будут записываться в переменную. Обратите внимание, что для объедения строк мы использовали Windows Script Host операторы «&» и «+».
В самом конце происходит вызов пользовательской процедуры (функции) ShowInNotepad, принципы создания пользовательских процедур и функций смотрите в статье «Урок 3 по JScript — создание пользовательских функций JS». В результате, будет открыто приложение WordPad.exe, в котором будут содержаться имена идентификаторов и их значений.
Спасибо за внимание. Автор блога Владимир Баталий
script host
Ответы (6)
Был ли этот ответ полезным?
К сожалению, это не помогло.
Отлично! Благодарим за отзыв.
Насколько Вы удовлетворены этим ответом?
Благодарим за отзыв, он поможет улучшить наш сайт.
Насколько Вы удовлетворены этим ответом?
Благодарим за отзыв.
Добрый день.
В поиске наберите Планировщик и откройте планировщик заданий. Отключите в нем все задания. Нажмите Win+R, в поле напечатайте taskmgr /0 /startup и нажмите Enter. Отключите все что есть в автозагрузке. Перезагрузите компьютер.
Понаблюдайте, исчезла ли проблема.
1 пользователь нашел этот ответ полезным
Был ли этот ответ полезным?
К сожалению, это не помогло.
Отлично! Благодарим за отзыв.
Насколько Вы удовлетворены этим ответом?
Благодарим за отзыв, он поможет улучшить наш сайт.
Насколько Вы удовлетворены этим ответом?
Благодарим за отзыв.
Он мне отвечает, что taskmgr /0 /startup не удалось найти, и что надо перепроверить правильность написания и повторить попытку. Пробовал и даже изменял пробел за «0»
Был ли этот ответ полезным?
К сожалению, это не помогло.
Отлично! Благодарим за отзыв.
Насколько Вы удовлетворены этим ответом?
Благодарим за отзыв, он поможет улучшить наш сайт.
Насколько Вы удовлетворены этим ответом?
Благодарим за отзыв.
Был ли этот ответ полезным?
К сожалению, это не помогло.
Отлично! Благодарим за отзыв.
Насколько Вы удовлетворены этим ответом?
Благодарим за отзыв, он поможет улучшить наш сайт.
Насколько Вы удовлетворены этим ответом?
Благодарим за отзыв.
Появление ошибки Windows Script Host с сообщением «Не удается найти файл сценария…» обычно вызвано тем, что в списке автоматически загружаемых программ остался связанный с ранее установленной программой, файл VBS, который в настоящий момент отсутствует, так как он был удален сам по себе или вместе с программой.
Для того, чтобы отключить появление этого окна, воспользуйтесь программой Autoruns , размещенной на сайте Microsoft . Программа не требует установки. Загрузите программу и распакуйте файл Autoruns.zip в отдельную папку. Запустите Autoruns.exe от имени администратора и в окне программы найдите точки автозапуска выделенные желтым цветом. Точка автозапуска связанная с появлением сообщения «Не удается найти файл сценария» скорее всего является запланированным заданием и будет находится во вкладке » Sheduled Tasks «, но может находится и на других вкладках. Снимите отметку напротив такого элемента в списке выделенного желтым цветом, в результате сообщение «Не удается найти файл сценария…» больше появляться не будет.
Предупреждение . Не снимайте отметки с элементов автозапуска не выделенных желтым цветом и не удаляйте точки автозапуска из списка в Autoruns, в назначении которых вы не уверены, при помощи клавиш DEL, Ctrl+D, а также при помощи контекстного меню или кнопки на панели инструментов программы. Элементы автозапуска в Autoruns удаляются безвозвратно и без возможности их последующего восстановления.
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