Мой вопрос похож на Запуск CMD или BAT в бесшумном режиме , но с одним дополнительным ограничением.
Если вы используете WshScript.Run в vbscript, вы теряете доступ к стандартным входным / ошибочным / выходным потокам процесса. WshScript.Exec предоставляет вам доступ к стандартным потокам, но вы не можете скрыть свои окна. Как вы можете получить свой торт (спрятать окна) и съесть его (иметь прямой доступ к потокам консоли)?
В настоящее время я думаю о исполняемом файле C ++, который создает новую рабочую станцию Windows и рабочий стол (см. MSDN ) и запускает указанный сценарий на этом новом рабочем столе (я еще не являюсь экспертом по Window Станции и десктопы, так что от этой идеи можно отказаться).
Эта идея основывается на функции Condor USE_VISIBLE_DESKTOP
, которая, если она отключена, запускает задания Condor на невидимом рабочем столе. Я не совсем понял, требует ли это повышенных привилегий.
Компромисс этого подхода в том, что ваш скрипт может исчезнуть в подвешенном состоянии, если он блокируется при вводе пользователем.
У кого-нибудь есть дополнительные идеи? Или отзывы о подходе, изложенном выше?
Редактировать:
Кроме того, целью нашего сценария является настройка пользовательской среды, поэтому запуск в качестве другого пользователя или в качестве запланированной системы задачи на самом деле невозможен (если только у меня нет хитрых приемов, о которых я не знаю).