Как запустить скрипт vbs из командной строки. Запуск процесса на удалённом компьютере – VBS Remote Scripting

17.11.2015 8019

П олагаем, все более или менее опытные пользователи хорошо знакомы с программами типа Acronis True Image или Hetman , предназначенными для создания резервных копий системы. Как правило, защита системы в подобных программах подразумевает создание полной резервной копии или так называемого образа. В отличие от этих инструментов программа не требует создания полных образов. Она позволяет восстанавливать систему с помощью быстрых снимков - снапшотов , наподобие тех, которые применяются в виртуальных машинах.


Откат к ранее созданному снимку можно выполнить в любое время, причём не имеет большого значения является ли система в данный момент в рабочем состоянии или нет.

Проста, удобна, имеет поддержку русского языка и плюс ко всему она ещё бесплатна для домашнего использования. Установка программы ничем не отличается от установки других десктопных приложений, разве что по завершении инсталляции мастер попросит вас перезагрузить компьютер.

Внешне программа имеет много общего с классическим штатным приложением для работы с точками восстановления Windows. Слева располагается панель инструментов, справа можно видеть список снимков.

Снимки можно создавать, удалять, блокировать с целью защиты от случайного удаления, просматривать их свойства, а также исследовать. Под исследованием подразумевается временное монтирование снимка как виртуального диска, получить доступ к которому можно через обычный Проводник.

Дополнительно RollBack RX поддерживает дефрагментацию снимков, восстановление из резервных копий отдельных папок и файлов по именам, типу или расположению, склеивание множества снимков в один базовый снимок. Также в программе имеется удобный планировщик задач и журнал событий. Само собой, вы можете выполнять откаты к любому из выбранных снимков. Для этого достаточно кликнуть по нужному снимку правой кнопкой мыши и выбрать в контекстном меню опцию «Откат» . При этом Windows будет немедленно перезагружена, а все изменённые файлы в системном разделе будут восстановлены в исходное состояние.

Это что касается отката при нестабильной, но всё же работающей системе. Если Windows не может загрузится самостоятельно, в самом начале загрузки при появлении окна RollBack RX на клавиатуре следует нажать кнопку Home . При этом вы попадёте в загрузочное меню программы, где и сможете выбрать нужное вам действие. RollBack RX достаточно эффективна, но относиться к ней как панацее от всех бед не стоит.

Создал обширную программу пакетного сценария для обработки некоторого автоматизированного управления файлами и печати, и мне нужно вызвать файл 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 использует явные типы, где это применимо.

Да, как ни странно у VBScript (точнее у Windows Scripting Host) тоже есть возможности запуска скриптов на удалённых компьютерах. Правда эта функция не получила большой популярности, и скорее всего из за того что требует немало подготовительных мероприятий, которые крайне плохо документированы.

Итак, для запуска скрипта на другом компьютере с помощью VBS нам понадобится:

  1. Права администратора на удалённом компьютере. Ну это само собой разумеется, и требуется почти во всех методах запуска которые я перечислял в блоге.
  2. Разрешить WSH Remote Scripting создав строковой параметр Remote равный “1” в ключе реестра HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Script Host\Settings
  3. Из за бага , на системах с Windows XP необходимо выполнить команду wscript –regserver. В SP3 ошибка вроде как исправлена.
  4. Необходимо отключить Firewall (или разрешить обращения к DCOM в исключениях) на обоих компьютерах. Да, да, и на том с которого запускаете сценарий, тоже (спасибо Косте Леоньтеву, я бы не догадался 🙂)
  5. В системах XP SP2 и выше необходимо изменить параметры безопасности (это можно сделать с помощью групповой политики). В узле Computer Configuration\Windows Settings\Security Settings\Local Policies\Security Options\ меняем разрешения следующим образом:
    1. DCOM: Machine Access Restrictions in Security Descriptor Definition Language (SDDL) syntax
      Выдать группам Anonymous Logon и Everyone разрешения Allow Local и Allow Remote Access
    2. 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.

Всё! 🙂 Теперь можно пользоваться 🙂

Для примера создадим сценарий 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 вам в руки и удачи 😉