Запуск скрипта vbs из командной строки. Запуск процесса на удалённом компьютере – VBS Remote Scripting
Да, как ни странно у VBScript (точнее у Windows Scripting Host) тоже есть возможности запуска скриптов на удалённых компьютерах. Правда эта функция не получила большой популярности, и скорее всего из за того что требует немало подготовительных мероприятий, которые крайне плохо документированы.
Итак, для запуска скрипта на другом компьютере с помощью VBS нам понадобится:
- Права администратора на удалённом компьютере. Ну это само собой разумеется, и требуется почти во всех методах запуска которые я перечислял в блоге.
- Разрешить WSH Remote Scripting создав строковой параметр Remote равный “1” в ключе реестра HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Script Host\Settings
- Из за бага , на системах с Windows XP необходимо выполнить команду wscript –regserver. В SP3 ошибка вроде как исправлена.
- Необходимо отключить Firewall (или разрешить обращения к DCOM в исключениях) на обоих компьютерах. Да, да, и на том с которого запускаете сценарий, тоже (спасибо Косте Леоньтеву, я бы не догадался 🙂)
- В системах XP SP2 и выше необходимо изменить параметры безопасности (это можно сделать с помощью групповой политики). В узле Computer Configuration\Windows Settings\Security Settings\Local Policies\Security Options\ меняем разрешения следующим образом:
- DCOM: Machine Access Restrictions in Security Descriptor Definition Language (SDDL) syntax
Выдать группам Anonymous Logon и Everyone разрешения Allow Local и Allow Remote Access - DCOM: Machine Launch Restrictions in Security Descriptor Definition Language (SDDL) syntax
Группе Administrators разрешения Allow Local Launch, Allow Remote Launch, Allow Local Activation, Allow Remote Activation
Группе Everyone – Allow Local Launch, Allow Local Activation.
- DCOM: Machine Access Restrictions in Security Descriptor Definition Language (SDDL) syntax
Всё! 🙂 Теперь можно пользоваться 🙂
Для примера создадим сценарий c:\test.vbs (он будет запущен на удалённом компьютере):
Set objFSO = CreateObject("Scripting.FileSystemObject") Set objTSOut = objFSO.CreateTextFile("C:\log.txt", True) objTSOut.WriteLine "Script executed" objTSOut.Close
Ну и самое главное – сценарий который будет непосредственно запускать файл на удалённом компьютере, RunRemoteScript.vbs:
Set objController = CreateObject("WshController") Set objRemoteScript = objController.CreateScript("C:\test.vbs", "computer1") WScript.ConnectObject objRemoteScript, "remote_" objRemoteScript.Execute Do While objRemoteScript.Status <> 1 WScript.Sleep 1000 Loop MsgBox "Script complete" Sub remote_Error Dim objError Set objError = objRemoteScript.Error WScript.Echo "Error - Line: " & objError.Line & _ ", Char: " & objError.Character & vbCrLf & _ "Description: " & objError.Description WScript.Quit -1 End Sub
Во второй строчке задается имя запускаемого сценария, и имя компьютера.
PS: Чтобы заставить работать этот сценарий я потратил немало времени, особенно пока нашел пункт 5 😉 И то, в результате у меня получилось выполнить сценарий лишь на машине с Windows XP (SP3). На компьютере с Vista ничего не получилось – возможно нужны какие то дополнительные пункты чтобы обойти новые усовершенствования безопасности 🙂 Так что если у вас вдруг возникли какие то проблемы с этой штукой – google вам в руки и удачи 😉
Vbs скрипты обычно применяются, чтобы обрабатывать данные, управлять системой, работать с учетными записями компьютеров и пользователей. Также они помогают взаимодействовать с офисными приложениями, работать с базами данных. В общем, незаменимая область для любого программиста.
Инструкция
Создал обширную программу пакетного сценария для обработки некоторого автоматизированного управления файлами и печати, и мне нужно вызвать файл vbs для его операции sendkeys. Есть ли способ сделать это без замораживания программы?
Я пробовал START / WAIT my.vbs, и скрипт зависает, когда он входит в.vbs
У кого-нибудь есть другие методы или переключатели, которые вы бы порекомендовали?
Я бы хотел, чтобы он работал тихо, если это вообще возможно, и мне нужен переключатель / WAIT, потому что мне нужна операция sendkeys для завершения до следующего шага в пакетном файле.
таймаут 5 таймаут /?
TIMEOUT
Описание: Эта утилита принимает параметр тайм-аута для ожидания указанного периода времени (в секундах) или до нажатия любой клавиши. Он также принимает параметр для игнорирования нажатия клавиши.
Список параметров: / T timeout Указывает количество секунд ожидания. Допустимый диапазон: от -1 до 99999 секунд.
/ NOBREAK Ignore key presses and wait specified time . /? Displays this help message .ПРИМЕЧАНИЕ. Значение тайм-аута -1 означает бесконечное ожидание нажатия клавиши.
TIMEOUT /? TIMEOUT / T 10 TIMEOUT / T 300 / NOBREAK TIMEOUT / T - 1Просто позвоните Правильный путь файла vbs
Файл BAT Edit it ... !!!
wscript " file-path "
Пример:
wscript " D: \ KmaniZoro \ PGM \ N ++ \ VBS \ inputbox.vbs "
Это очень старый вопрос, но существующие ответы являются возмутительно неопределенными и / или не могут идентифицировать наиболее важные вещи, когда они не просто ошибаются. Не собираюсь повторять то, что уже есть другие ответы, но из других ответов отсутствуют следующие отличия:
Области применения
Код VBScript не нуждается в процедурных областях: он может быть записан как скрипт , который просто выполняет кучу процедурных операций сверху вниз.
В исполняемых операциях VB6 / VBA могут существовать только внутренние области процедур.
Типы
В VBScript все (переменные, возвращаемые значения функции и т. Д.) - это Variant (т. Е. Почти утка , как в JavaScript). При объявлении переменной запрещено объявлять явный тип. Ключевое слово As запрещено!
В VB6 / VBA все по умолчанию используется неявным Variant , но хороший код VB6 / VBA использует явные типы, где это применимо.
Инструкция
Запустите файл с расширением *.vbs двойным кликом мыши или вызовите его по имени в консоли. Для этого зайдите в меню пуск/выполнить и наберите путь к необходимому файлу в открывшемся окошке. Это самый обычный текстовый документ, который легко можно править в . Данный метод самый понятный и простой, но иногда в силу определенных обстоятельств он не срабатывает (система не поддерживает формат, слетела кодировка и т.д.).
Если файл с расширением *.vbs , проверьте наличие интерпретаторов языка VBS. Их в системе должно быть два: консольный CScript и оконный WScript (вместе они – Windows Script Host или WSH). Они, по идее, должны сразу устанавливаться вместе с системой, но иногда так получается, что они либо повреждены, либо вообще не установлены (может быть на старых версиях систем). Если интерпретаторов нет в наличии, установите их на свой компьютер и запустите скрипт двойным щелчком мыши.
Создайте обыкновенный текстовый файл с расширением txt. Скопируйте туда данный текст:Sub Run(ByVal sFile)Dim shellSet shell = CreateObject("WScript.Shell")shell.Run Chr(34) & sFile & Chr(34), 1, falseSet shell = NothingEnd SubRun "C:/Program Files/FileZilla FTP Client/filezilla.exe"Естественно, путь заменяете своим исполняемым файлом. Затем переименуйте созданный ранее txt-файл на vbs расширение. Для проверки щелкните два раза по нему мышкой, и по указанному пути запустится программа.
Для того чтобы обратиться к методу Windows Script Host, укажите объект и метод с нужными параметрами (через точку). Свойства WSH указываете также, но их можно и назначать и считывать в переменные и остальные свойства. Всегда учитывайте тип данных свойств и переменных, в противном случае сценарий будет выдавать ошибку о несовместимости типов данных.
Написать или подобрать полезный веб-скрипт – это полдела, надо ещё найти способ его выполнить. Давайте рассмотрим подробнее, что нужно для исполнения наиболее распространённых типов скрипт ов.
Инструкция
Обязательным условием выполнения любого скрипт а (то есть сценария), естественно, является наличие самого исполнителя. Применительно к языкам -программирования таким исполнителем будет интерпретатор скрипт ового языка. В зависимости от того, где должен исполняться сценарий, интерпретатор языка может быть либо частью серверного программного обеспечения, либо частью программного кода браузера. Поэтому чтобы выполнить любой серверный скрипт (например, php- или perl-скрипт ) необходимо иметь запущенный сервер. Сервер можно подобрать в сети и у себя в . Очень популярен, к примеру, среди русскоязычных программистов из-за своей относительной простоты и бесплатности серверного программного обеспечения под названием «Денвер». А можно не морочиться с установкой у себя, а воспользоваться услугами хостинг-провайдера. Провайдер даст вам доступ к , а все заботы по его поддержанию и обслуживанию вас не будут касаться. Обычно такие платны, но не дороги.
По- обстоит дело с «клиентскими» скрипт
ами. Это сценарии, которые должны выполняться прямо в . Чтобы выполнить такой скрипт
, написанный, например, на языке JavaScript кроме браузера да простого текстового редактора (подойдёт стандартный блокнот) ничего больше не требуется. Вот, к примеру, простейший скрипт
: var now = new Date();
document.write ("Этот скрипт
выплнен в " + now.getHours() + " часов " + now.getMinutes() + " минут");Чтобы его выполнить, достаточно сохранить этот код в файле с расширением html (например, test.html) а затем запустить двойным щелчком мыши. Расширение html (HyperText Markup Language - «язык разметки гипертекста») в операционной системе зарезервировано за файлами, содержащими веб-страницы. Поэтому ОС запустит ваш браузер и передаст ему адрес этого файла, а браузер распознает скрипт
, прочтёт и выполнит его сценарий. В результате мы увидим
- Японские телефоны Новый японский смартфон
- Lenovo G500S: характеристики, основные особенности
- Определяем серию продукта видеокарт Nvidia Характеристики карты nvidia 9800 gt
- А конкуренты у смартфона есть
- Что такое расширение файла TRZ?
- Не работает динамик в "айфоне"
- В чем разница внешнего вида защитных стекол для смартфона?