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