var WshController=WScript.CreateObject("WshController");
Замечание
Обратите внимание, что для объекта
WshController
программным идентификатором (ProgID) является именно строка "
WshController
", а не строка "
WScript.WshController
", как указано в бета-версии документации на WSH 5.6.
Метод
CreateScript
возвращает указатель на объект
WshRemote
, с помощью которого можно контролировать состояние удаленного сценария и управлять его выполнением.
При выполнении этого метода WSH последовательно производит следующие действия:
подготавливает файл со сценарием для пересылки на удаленную станцию;
с помощью протокола DCOM создает экземпляр объекта
WshRemote
на удаленной машине;
пересылает сценарий на удаленную станцию для последующего выполнения с помощью метода
Execute
объекта
WshRemote
.
Синтаксис метода
CreateScript
:
CreateScript(CommandLine, [MachineName])
Параметр
CommandLine
содержит командную строку для запуска сценария, который должен быть выполнен на удаленной станции. Путь к сценарию должен быть указан относительно локальной машины, а не относительно той станции, на которой должен выполняться сценарий. Чаще всего этот путь указывает на файл, находящийся непосредственно на локальном компьютере, хотя можно указать путь к сценарию, записанному на каком-либо общем сетевом ресурсе (это делает возможным, работая на одном компьютере, загружать сценарий с другого и выполнять этот сценарий на третьем компьютере в сети).
Второй необязательный параметр
MachineName
задает имя компьютера, на котором должен быть запущен сценарий. Если этот параметр не указан, то сценарий будет выполняться на локальной машине.
Объект WshRemote
Объект
WshRemote
необходим для контроля состояния сценариев, которые запущены на удаленной машине. В результате запуска такого сценария на удаленной машине создается процесс, поэтому можно сказать, что экземпляром объекта
WshRemote
, соответствующего выполняющемуся сценарию, является процесс. Создается
, который содержит информацию об ошибке, приведшей к аварийному завершению работы удаленного сценария.
Числовое свойство
Status
позволяет определить состояние сценария, работающего асинхронно на удаленной машине. Возможные значения свойства
Status
приведены в табл. 1.19.
Таблица 1.19. Значения параметра
Status
Значение
Числовое значение
Описание
NoTask
0
Объект
WshRemote
, соответствующий удаленному
сценарию, создан, однако сценарий еще не запущен
Running
1
Выполнение удаленного сценария продолжается
Finished
2
Удаленный сценарий завершен
Два имеющихся у объекта
WshRemote
метода позволяют соответственно запустить удаленный сценарий (метод
Execute
) или принудительно завершить его выполнение (метод
Terminate
); оба эти метода не имеют параметров. Метод
Terminate
, подобно одноименному методу объекта
WshScriptExec
, пытается закрыть приложение, посылая ему сообщение
WM_CLOSE
(если это не срабатывает, процесс завершается принудительно).
Кроме свойств и методов, объект WshRemote может генерировать три события, которые описаны в табл. 1.20.
Таблица 1.20. События объекта
WshRemote
Событие
Описание
Start
Возникает при вызове метода
Execute
и сигнализирует серверу сценариев о начале выполнения сценария на удаленной машине
Error
Возникает в том случае, когда выполнение сценария на удаленной машине завершается аварийно
End
Возникает при завершении (нормальном или аварийном) работы сценария на удаленной машине
Для обработки в сценариях событий, приведенных в табл. 1.20, необходимо подключиться к объекту WshRemote с помощью метода ConnectObject объекта WScript (листинг 1.28).
Листинг 1.28. Обработка событий объекта WshRemote (JScript)