Запуск процесу на віддаленому комп'ютері - vbs remote scripting, powershell і інші скрипти

Так, як не дивно у VBScript (точніше у Windows Scripting Host) теж є можливості запуску скриптів на віддалених комп'ютерах. Правда ця функція не отримала велику популярність, і швидше за все через те, що вимагає чимало підготовчих заходів, які вкрай погано документовані.

Отже, для запуску скрипта на іншому комп'ютері за допомогою VBS нам знадобиться:

  1. Права адміністратора на віддаленому комп'ютері. Ну це само собою зрозуміло, і потрібно майже у всіх методах запуску які я перераховував в блозі.
  2. Дозволити WSH Remote Scripting створивши строкової параметр Remote рівний "1" в ключі реєстру HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows Script Host \ Settings
  3. Через бага 311269. на системах з 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 (він буде запущений на віддаленому комп'ютері):

Ну і найголовніше - сценарій який буде безпосередньо запускати файл на віддаленому комп'ютері, RunRemoteScript.vbs:

У другій сходинці задається ім'я запускається сценарію, і ім'я комп'ютера.

PS: Щоб змусити працювати цей сценарій я витратив чимало часу, особливо поки знайшов пункт 5 😉 І то, в результаті у мене вийшло виконати сценарій лише на машині з Windows XP (SP3). На комп'ютері з Vista нічого не вийшло - можливо потрібні якісь додаткові пункти щоб обійти нові удосконалення безпеки 🙂 Так що якщо у вас раптом виникли якісь проблеми з цією штукою - google вам в руки і удачі 😉

Схожі статті