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).
/********************************************************************/
/* Имя: RunRemoteScript.js */
/* Язык: JScript */
/* Описание: Запуск удаленного сценария */
/********************************************************************/
var Controller, RemScript; //Объявляем переменные
//Создаем объект WshController
Controller = WScript.CreateObject("WshController");
//Создаем сценарий на удаленной машине (объект WshRemote)
RemScript = Controller.CreateScript("D:\\RemoteScript.js", "stand");
RemScript.Execute(); //Запускаем удаленный сценарий
WScript.Echo("Удаленный сценарий запущен");
while (RemScript.Status != 2)
//Цикл выполняется до завершения удаленного сценария
WScript.Sleep(100); //Приостанавливаем сценарий на 0,1 сек
WScript.Echo("Выполнение удаленного сценария завершено");
/************* Конец *********************************************/
В листинге 2.54 приведен аналог сценария RunRemoteScript.js на языке VBScript.
'********************************************************************
' Имя: RunRemoteScript.vbs
' Язык: VBScript
' Описание: Запуск удаленного сценария
'********************************************************************
Option Explicit
Dim Controller, RemScript ' Объявляем переменные
' Создаем объект WshController