Чтение онлайн

на главную - закладки

Жанры

Windows Script Host для Windows 2000/XP

Попов Андрей Викторович

Шрифт:

Во-первых, и на локальной и на удаленной машинах должны быть установлены операционные системы Windows NT (SP 3)/Windows 2000/Windows ХР (системы Windows 95/98/ME не поддерживаются).

Во-вторых, пользователь, который запускает сценарий, должен входить в группу локальных администраторов на той машине, где должен выполняться сценарий.

В-третьих, удаленная машина должна быть предварительно настроена для выполнения удаленных сценариев (по умолчанию после первоначальной установки выполнение таких сценариев запрещено). Для этого необходимо записать 1 в следующий параметр системного реестра:

HKLM\Software\Microsoft\Windows Script Host\Settings\Remote
 (А)

(если этот параметр не существует, его нужно создать). Если значением этого параметра является 0, то это означает, что выполнение удаленных сценариев на машине запрещено.

Для того чтобы разрешить выполнение удаленных сценариев на уровне пользователя, необходимо создать параметр

HKCU\Software\Microsoft\Windows Script Host\Settings\Remote
 (Б)

и также записать в него 1. Если значением этого параметра является 0, то это означает, что выполнение удаленных сценариев для текущего пользователя запрещено.

Также при настройке режима выполнения удаленных сценариев нужно проверить значение параметра

HKLM\Software\Microsoft\Windows Script Host\Settings\IgnoreUserSettings
(В)

Если значением этого параметра является 1, то параметр (Б) игнорируется и проверяется только значение параметра (А). Если же значением параметра (В) является 0, то WSH сначала проверяет параметр (Б) и только в случае его отсутствия принимается во внимание значение параметра (А).

Если удаленные сценарии нужно выполнять на машине с операционной системой Windows ХР, то на этой машине нужно перерегистрировать сервер wscript.exe с помощью следующей команды:

wscript.exe -regserver

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

WScript.Echo
или
WshShell.Popup
(это может привести к непредсказуемым результатам).

Для примера рассмотрим сценарий RemoteShortcut.js (листинг 2.52), который создает ярлык в специальной папке AllUserDesktop (рабочий стол для всех пользователей). Предположим, что этот сценарий находится в корневом каталоге диска D:, а запустить сценарий необходимо на компьютере \\Stand.

Листинг 2.52. Сценарий для запуска на удаленной машине (JScript)

/*****************************************************************/

/* Имя: RemoteShortcut.js */

/* Описание: Создание ярлыка на рабочем столе */

/*****************************************************************/

var WshShell,MyShortcut,PathTarg,PathShortcut;

//Создаем объект WshShell

WshShell = WScript.CreateObject("WScript.Shell");

//Определяем путь к папке "AllUsersDesktop" (рабочий стол

//всех пользователей)

PathShortcut = WshShell.SpecialFolders("AllUsersDesktop");

//Создаем объект-ярлык

MyShortcut = WshShell.CreateShortcut(PathShortcut+ "\\From Remote WSH.lnk");

//Устанавливаем путь к файлу

PathTarg=WshShell.ExpandEnvironmentStrings("%windir%\\notepad.exe");

MyShortcut.TargetPath = PathTarg;

MyShortcut.Save; //Сохраняем ярлык

/************* Конец *********************************************/

Для запуска сценария RemoteShortcut.js на удаленном компьютере \\Stand нужно создать другой сценарий RunRemoteScript.js (листинг 2.53). Здесь вначале создается объект

WshController
:

Controller = WScript.CreateObject("WshController");

Затем мы получаем ссылку на экземпляр объекта

WshRemote
на машине \\Stand, соответствующий сценарию с текстом, взятым из файла D:\RemoteScript.js:

RemScript = Controller.CreateScript("D:\\RemoteScript.js", "stand");

Запускается удаленный сценарий с помощью метода

Execute
:

RemScript.Execute;

После этого нужно дождаться окончания работы сценария на удаленной машине, что делается путем контроля в цикле

while
свойства
Status
объекта
WshRemote
(значение свойства status, равное 2, говорит о том, что выполнение удаленного сценария завершено):

while (RemScript.Status != 2)

 //Цикл выполняется до завершения удаленного сценария

 WScript.Sleep(100); //Приостанавливаем сценарий на 0,1 сек

Метод

Sleep
объекта
WScript
вызывается в цикле для того, чтобы освободить процессор во время ожидания завершения удаленного сценария (листинг 2.53).

Листинг 2.53. Запуск удаленного сценария (JScript)

/********************************************************************/

/* Имя: RunRemoteScript.js */

/* Язык: JScript */

/* Описание: Запуск удаленного сценария */

/********************************************************************/

var Controller, RemScript; //Объявляем переменные

//Создаем объект WshController

Controller = WScript.CreateObject("WshController");

Поделиться:
Популярные книги

Сильнейший Столп Империи. Книга 5

Ермоленков Алексей
5. Сильнейший Столп Империи
Фантастика:
аниме
фэнтези
фантастика: прочее
попаданцы
5.00
рейтинг книги
Сильнейший Столп Империи. Книга 5

Я еще граф. Книга #8

Дрейк Сириус
8. Дорогой барон!
Фантастика:
боевая фантастика
попаданцы
5.00
рейтинг книги
Я еще граф. Книга #8

Кодекс Охотника. Книга XV

Винокуров Юрий
15. Кодекс Охотника
Фантастика:
попаданцы
аниме
5.00
рейтинг книги
Кодекс Охотника. Книга XV

Дважды одаренный. Том IV

Тарс Элиан
4. Дважды одаренный
Фантастика:
городское фэнтези
альтернативная история
аниме
7.00
рейтинг книги
Дважды одаренный. Том IV

Кодекс Охотника. Книга ХХ

Винокуров Юрий
20. Кодекс Охотника
Фантастика:
попаданцы
альтернативная история
аниме
5.00
рейтинг книги
Кодекс Охотника. Книга ХХ

Деревенщина в Пекине 2

Афанасьев Семён
2. Пекин
Фантастика:
попаданцы
дорама
фантастика: прочее
5.00
рейтинг книги
Деревенщина в Пекине 2

Я снова царь. Книга XXXIII

Дрейк Сириус
33. Дорогой барон!
Фантастика:
юмористическое фэнтези
аниме
попаданцы
5.00
рейтинг книги
Я снова царь. Книга XXXIII

Запрети любить

Джейн Анна
1. Навсегда в моем сердце
Любовные романы:
современные любовные романы
5.00
рейтинг книги
Запрети любить

Протокол "Наследник"

Лисина Александра
1. Гибрид
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Протокол Наследник

Руководство по системной поведенченской психотерапии

Курпатов Андрей Владимирович
Научно-образовательная:
психотерапия и консультирование
5.00
рейтинг книги
Руководство по системной поведенченской психотерапии

Древесный маг Орловского княжества 13

Павлов Игорь Васильевич
13. Орловское княжество
Фантастика:
аниме
фэнтези
попаданцы
5.00
рейтинг книги
Древесный маг Орловского княжества 13

История западной философии

Рассел Бертран Артур Уильям
Пути философии
Научно-образовательная:
история
философия
культурология
5.00
рейтинг книги
История западной философии

Цикл романов "Целитель". Компиляция. Книги 1-17

Большаков Валерий Петрович
Целитель
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Цикл романов Целитель. Компиляция. Книги 1-17

Кукла

Прус Болеслав
Проза:
классическая проза
8.87
рейтинг книги
Кукла