Wshshell run параметры: Объект WScript.Shell метод Run — запуск внешних программ

wscript | Microsoft Learn






Twitter




LinkedIn




Facebook




Адрес электронной почты










  • Статья



Область применения: Windows Server (все поддерживаемые версии)

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

Синтаксис

wscript [<scriptname>] [/b] [/d] [/e:<engine>] [{/h:cscript|/h:wscript}] [/i] [/job:<identifier>] [{/logo|/nologo}] [/s] [/t:<number>] [/x] [/?] [<ScriptArguments>]

Параметры

ПараметрОписание
scriptnameУказывает путь и имя файла скрипта.
/bЗадает пакетный режим, в котором не отображаются оповещения, ошибки сценариев или запросы ввода. Параметр /b является противоположностью /i.
/dЗапускает отладчик.
/eУказывает подсистему, используемую для выполнения скрипта. Этот параметр позволяет выполнять скрипты, использующие пользовательское расширение имени файла. Без параметра /e можно запускать только сценарии, использующие зарегистрированные расширения имен файлов. Например, при попытке выполнить следующую команду:
cscript test. admin
Появляется следующее сообщение об ошибке: Input Error: There’s script engine for file extension (Ошибка ввода: отсутствует обработчик скриптов для расширения .adminфайла ).
Одним из преимуществ использования нестандартных расширений имен файлов является то, что он защищает от случайного двойного выбора скрипта и выполнения чего-то, что вы на самом деле не хотите запускать.
Использование этого расширения не создает постоянную связь между расширением .admin имени файла и VBScript. При каждом запуске скрипта, использующего .admin расширение имени файла, необходимо использовать параметр /e.
/h:cscriptРегистрирует cscript.exe в качестве узла скриптов по умолчанию для выполнения скриптов.
/h:wscriptРегистрирует wscript.exe в качестве узла скриптов по умолчанию для выполнения скриптов. Это поведение используется по умолчанию, если параметр /h опущен.
/iЗадает интерактивный режим, в котором отображаются оповещения, ошибки сценариев и запросы ввода. Параметр /i является значением по умолчанию и противоположностью /b.
/job:\<identifier>Выполняет задание, определенное идентификатором, в WSF-файле скрипта .
/logoУказывает, что перед выполнением скрипта в консоли отображается баннер узла сценариев Windows. Параметр /logo используется по умолчанию и является противоположностью /nologo.
/nologoУказывает, что баннер «Узел сценариев Windows» не отображается перед выполнением скрипта. Параметр /nologo является противоположностью /logo.
/sСохраняет текущие параметры командной строки для текущего пользователя.
/t:\<number>Указывает максимальное время выполнения скрипта (в секундах). Можно указать до 32 767 секунд. По умолчанию нет ограничений по времени.
/xЗапускает скрипт в отладчике.
ScriptArgumentsУказывает аргументы, передаваемые в скрипт. Перед каждым аргументом скрипта должна быть косая черта (/).
/?Отображает справку в командной строке.
  • Для выполнения этой задачи не требуются учетные данные администратора. Рассмотрите возможность выполнения этой задачи в качестве пользователя без учетных данных администратора в качестве рекомендации по обеспечению безопасности.
  • Чтобы открыть командную строку, на начальном экране введите cmd и выберите командную строку.
  • Каждый параметр является необязательным. Однако аргументы скрипта невозможно указать без указания скрипта. Если скрипт или аргументы скрипта не указаны, wscript.exe откроется диалоговое окно Параметры узла сценариев Windows . Используйте диалоговое окно, чтобы задать глобальные свойства скриптов для всех сценариев, которыеwscript.exe выполняться на локальном компьютере.
  • Параметр /t предотвращает чрезмерное выполнение скриптов, устанавливая таймер. Когда время превышает указанное значение, wscript прерывает работу обработчика скриптов и завершает процесс.
  • Файлы сценариев Windows обычно имеют одно из следующих расширений имен файлов: .wsf, .vbs, .js.
  • Если дважды выбрать файл скрипта с расширением, которое не имеет связи, появится диалоговое окно Открыть с помощью. Выберите wscript или cscript, а затем выберите Всегда использовать эту программу, чтобы открыть файл этого типа. При этом wscript.exe или cscript.exe в качестве узла скриптов по умолчанию для файлов этого типа.
  • Вы можете задать свойства для отдельных скриптов. Дополнительные сведения о узле сценариев Windows см. в статье Общие сведения о узле сценариев Windows.
  • Узел сценариев Windows может использовать WSF-файлы скриптов . Каждый WSF-файл может использовать несколько обработчиков сценариев и выполнять несколько заданий.
  • Условные обозначения синтаксиса команд командной строки






Массовое добавление сертификатов в групповые политики Active Direcory / Sandbox / Habr

System administration *

Awaiting invitation

Приведенный ниже VBS скрипт добавляет все сертификаты из папки, указанной в переменной «path» в хранилище доверенных корневых сертификатов на локальном компьютере:

path = "\Root\"
Set WshShell = WScript.CreateObject( "WScript.Shell" ) 
Set objNetwork = CreateObject( "WScript.Network" )
set fso = CreateObject( "Scripting. FileSystemObject" )
Set fLog = fso.OpenTextFile( "!log_root_certs.txt", 8, True )
fLog.write vbCrLf & "=Начало=" & Now( ) & vbCrLf
fLog.write "Имя компа: " & objNetwork.ComputerName & vbCrLf
fLog.write "Имя пользователя: " & objNetwork.UserName & vbCrLf
fLog.write "Были установлены следующие сертификаты:" & vbCrLf  & vbCrLf
i = 0
for each f in FSO.GetFolder( WshShell.CurrentDirectory & path ).Files 'тут указано имя папки, в которой ищем.
 if right(f.name, 4) = ".cer" then 
   WshShell.Run "certmgr -add -c " & chr(34) & f & chr(34) & " -s -r localMachine root", 7, true
   fLog.write f.name & vbCrLf 
   i = i + 1
 end if
next 
fLog.write vbCrLf  & "Установлено сертификатов: " & i & vbCrLf  & vbCrLf 
fLog.close


Но, как я понял, проделать такой трюк с Active Directory с помощью утилиты «Certmgr», задействованной скриптом — не удастся.

Для этого слегка модернизируем скрипт в части параметров утилиты «Certmgr», то есть вместо хранилища локального компьютера укажем файл:

path = "\Root\"
Set WshShell = WScript. CreateObject( "WScript.Shell" ) 
Set objNetwork = CreateObject( "WScript.Network" )
set fso = CreateObject( "Scripting.FileSystemObject" )
Set fLog = fso.OpenTextFile( "!log_root_certs.txt", 8, True )
fLog.write vbCrLf & "=Начало=" & Now( ) & vbCrLf
fLog.write "Имя компа: " & objNetwork.ComputerName & vbCrLf
fLog.write "Имя пользователя: " & objNetwork.UserName & vbCrLf
fLog.write "Были установлены следующие сертификаты:" & vbCrLf  & vbCrLf
i = 0
for each f in FSO.GetFolder( WshShell.CurrentDirectory & path ).Files 'тут указано имя папки, в которой ищем.
 if right(f.name, 4) = ".cer" then 
   WshShell.Run "certmgr -add -c " & chr(34) & f & chr(34) & " certs.sst", 7, true
   fLog.write f.name & vbCrLf 
   i = i + 1
 end if
next 
fLog.write vbCrLf  & "Установлено сертификатов: " & i & vbCrLf  & vbCrLf 
fLog.close


После выполнения скрипта мы получим готовый файл «certs.sst», который будет включать в себя все сертификаты из папки, указанной в переменной «path». Этот файл можно использовать для импорта в AD (Конфигурация компьютера -> Политики -> Конфигурация Windows -> параметры безопасности -> Политики открытого ключа).

Протестировано на Windows Server 2008 R2.

* Авторство исходного кода (предположительно!) принадлежит компании «Тензор».

Tags:

  • групповые политики
  • windows server

Hubs:

  • System administration

You can’t comment this publication because its author is not yet a full member of the community. You will be able to contact the author only after he or she has been invited by someone in the community. Until then, author’s username will be hidden by an alias.

.Выполнить — VBScript — SS64.com

.Выполнить — VBScript — SS64.com

  • SS64
  • VBScript
  • Практическое руководство

Запустить внешнюю команду.

 Синтаксис
      objShell.Run ( strCommand , [ intWindowStyle ], [ bWaitOnReturn ])

Ключ
   objShell : объект WScript. Shell

   strCommand : команда для выполнения

   интвиндовстиле
   (Необязательно) : значение Int, указывающее внешний вид
                  окно программы.
                  Не все программы используют это.

   bWaitOnReturn: дождаться завершения команды перед
                   продолжение выполнения сценария wsh.
 

Если для bWaitOnReturn установлено значение TRUE, метод Run возвращает
любой код ошибки, возвращаемый приложением.

Если bWaitOnReturn не указан или FALSE, этот метод немедленно возвращает
к выполнению сценария, а не к ожиданию завершения процесса (и возвращает
код ошибки 0)

Указание параметра bWaitOnReturn позволяет запускать программы синхронно
(один за раз).

Переменные среды в аргументе strCommand автоматически
расширен.

Если тип файла был правильно зарегистрирован в конкретной программе, вызов
run на файле этого типа выполняет программу. Например, если Word установлен
в вашей компьютерной системе вызов Run для файла *. doc запускает Word и загружает
документ.

Параметры для intWindowStyle:

 0 Скрыть окно (и активировать другое окно).
1 Активируйте и отобразите окно. (восстановить размер и положение) Укажите этот флаг при отображении окна в первый раз.
2 Активировать и свернуть.
3 Активировать и развернуть.
4 Восстановить. Активное окно остается активным.
5 Активировать и восстановить.
6 Сверните и активируйте следующее окно верхнего уровня в порядке Z.
7 Свернуть. Активное окно остается активным.
8 Отобразите окно в его текущем состоянии. Активное окно остается активным.
9 Восстановить и активировать. Укажите этот флаг при восстановлении свернутого окна.
10 Устанавливает состояние отображения на основе состояния программы, которая запустила приложение.

Невидимый.vbs

В планировщике заданий Windows свойства задачи включают флажок «Скрытый», это не уменьшает и не скрывает командное окно, но скрывает задачу из списка задач планировщика заданий. (Меню Вид ➞ Показать скрытые задачи по умолчанию стоит галочка.)

Эта одна строка VBScript может использоваться для запуска команды в невидимом окне:

CreateObject(«Wscript.Shell»).Выполнить «»»» & WScript.Arguments(0) & «»»», 0, False

Пример запуска Demo.cmd с invisible.vbs
wscript.exe «invisible.vbs» «demo.cmd» // nologo

Если это задание выполняется как запланированное, либо укажите полный путь к VBS и пакетному файлу, либо укажите папку «Начать в» при создании задания.

Если вам также необходимо передать параметры в пакетный файл, используйте эту версию invisible.vbs, которая их передает (источник Pyprohly):

 Тусклые аргументы()
ReDim Args(WScript.Arguments.Count - 1)

Для i = 0 Для WScript.Arguments.Count - 1
   Args(i) = """" & WScript.Arguments(i) & """"
Следующий

CreateObject("WScript.Shell").Выполнить соединение(аргументы), 0, False 

Свернутый файл.vbs

Эта одна строка VBScript может использоваться для запуска команды в свернутом окне:

CreateObject(«Wscript. Shell»).Выполнить «»»» & WScript.Arguments(0) & «»»», 7 , Ложь

Пример запуска ‘Demo.cmd’ с минимизированным.vbs
%SystemRoot%\system32\wscript.exe «свернутый.vbs» «demo.cmd»//нолого

Примеры

Запустить Блокнот с текущим исполняемым скриптом:

Установить objShell = WScript.CreateObject("WScript.Shell")
  objShell.Run  ("%windir%\notepad.exe" & WScript.ScriptFullName) 

Запустить Блокнот с текущим исполняемым скриптом, указать
тип окна, подождите, пока блокнот будет закрыт пользователем,
и сохраните код ошибки, возвращенный из Блокнота при его выходе:

Установить objShell = WScript.CreateObject("WScript.Shell")
intReturn =  objShell.Run  ("notepad.exe " & WScript.ScriptFullName, 1, правда)
Если intReturn <> 0 Тогда
   Wscript.Echo "Ошибка запуска программы"
Конец, если 

Откройте окно cmd, измените путь на C:\ и выполните команду DIR:

Дим objShell
Установите objShell = WScript. CreateObject("WScript.shell")
objShell  .run  "cmd /K CD C:\ & Dir"
Установить objShell = Ничего
 

Вызов одного сценария VB из другого. Это можно сделать, как показано ниже, хотя обычно лучше поместить все в один скрипт и использовать функции для разделения блоков кода.

Задать objShell = CreateObject(«WScript.Shell»)
objShell .run («cscript C:\scripts\demo.vbs»)

«Говори правду и беги» ~ югославская пословица

Родственный:

.Exec — Выполнить команду, возвращающую объект.
.ShellExecute — запустить приложение в оболочке Windows.
cscript — запуск файла VB Script .vbs
аргументы — передача аргументов сценарию.
Эквивалентная команда Windows CMD: START — запустить
программа или команда.
Эквивалентный командлет PowerShell: Run


 

Copyright © 1999-2023 SS64.com
Некоторые права защищены

WSH >> wshshell >> Выполнить

Синтаксис:
WshShell. Run (strCommand [intWindowStyle]
[bWaitOnReturn])
strCommand
Получает строку, содержащую команду, которая будет выполнена.
intWindowStyle
Этот необязательный параметр получает целое число, соответствующее стилю окна в таблице Значения стиля окна .
bWaitOnReturn
Если для этого необязательного параметра установлено значение True, сценарий будет приостановлен до завершения выполнения команды.

Метод Run запускает приложение в
новый процесс.

Бег
метод создает новый процесс и запускает команду, указанную
улКоманда. Используется необязательный параметр intWindowStyle.
установить стиль окна запускаемой программы. Если необязательный
параметр bWaitOnReturn установлен в True (по умолчанию False), тогда
Run вернет возвращаемое значение, возвращенное strCommand.
В противном случае возвращается 0. Кроме того, если для bWaitOnReturn установлено значение True,
тогда скрипт приостановит свое выполнение до тех пор, пока strCommand
заканчивается.

В следующей таблице показаны доступные
настройки для intWindowStyle.

Значения стиля окна

интвиндовсстиле Настройки
0 Скрывает окно и активирует другое окно.
1 Активирует и отображает окно. Если окно свернуто или
максимизируется, система восстанавливает его исходный размер и положение. Ан
приложение должно указывать этот флаг при отображении окна для
первый раз.
2 Активирует окно и отображает его в свернутом виде.
окно.
3 Активирует окно и отображает его в развернутом виде.
окно.
4 Отображает окно в его последнем размере и положении. активный
окно остается активным.
5 Активирует окно и отображает его в текущем размере и
позиция.
6 Сворачивает указанное окно и активирует следующее окно верхнего уровня.
окно в порядке Z.
7 Отображает окно в свернутом виде. Активное окно
остается активным.
8 Отображает окно в его текущем состоянии. Активное окно остается
активный.
9 Активирует и отображает окно. Если окно свернуто или
максимизируется, система восстанавливает его исходный размер и положение. Ан
приложение должно указывать этот флаг при восстановлении свернутого
окно.
10 Устанавливает состояние показа на основе состояния запущенной программы.
приложение.
Код:

Установить WshShell =
WScript.CreateObject("WScript.Shell")
intReturn =
WshShell.Run("блокнот" & WScript.ScriptFullName, 1,
TRUE)
WshShell.