У меня есть скрипт CustomAction (Да, я знаю все о мнениях, которые говорят , не используйте скрипт CustomActions . У меня другое мнение.)
Я хотел бы запустить команду и записать вывод. Я могу сделать это с помощью COM-объекта WScript.Shell, затем вызвать shell.Exec()
. Но это отображает видимое окно консоли для выполненной команды.
Чтобы избежать этого, я понимаю, что могу использовать вызов shell.Run()
и указать «скрытый» для появления окна. Но .Run()
не дает мне доступа к StdOut выполняемого процесса, так что это означает, что мне нужно создать временный файл и перенаправить вывод exe во временный файл, а затем прочитать этот временный файл в сценарии.
Некоторые вопросы:
это сработает?
Как мне создать имя для временного файла? В .NET я мог бы использовать статический метод в пространстве имен System.IO, но здесь я использую скрипт. Мне нужно убедиться, что у пользователя есть доступ к RW, а также, что ни одна антивирусная программа не будет этим заниматься.
Лучшие идеи? Я очень стараюсь избегать C / C ++.
Я мог бы избежать всего этого, если бы существовал способ запрашивать сайты в IIS7 из сценария, не прибегая к пакету IIS6 Compatibility, без использования .NET ( Microsoft.Web.Administration.ServerManager ) и без исключения процесса ( список сайтов appcmd ).
Я уже задавал отдельный вопрос на эту тему ; Любые предложения по этому вопросу также будут оценены.