Я пытаюсь запустить следующий фрагмент кода как часть инструмента, чтобы собрать и зарегистрировать некоторую соответствующую диагностику системы. Цель этого фрагмента - собрать результат выполнения команды:
vssadmin list writers
Фрагмент выглядит следующим образом:
' Set WshShell = CreateObject("WScript.Shell")
' WScript.Echo sCurPath & "\vsswritercheck.bat"
' Set WshShellExec = WshShell.Exec("elevate.cmd cmd.exe /c " & sCurPath & "\vsswritercheck.bat")
Set oShell = CreateObject("Shell.Application")
oShell.ShellExecute "cmd.exe", sCurPath & "\vsswritercheck.bat", , "runas", 1
vsswriter = VSSWriterCheck
Select Case oShell.Status
Case WshFinished
strOutput = oShell.StdOut.ReadAll
Case WshFailed
strOutput = oShell.StdErr.ReadAll
End Select
WScript.Echo strOutPut
vsswriter = strOutPut
С первым фрагментом кода (закомментированным) я могу запустить команду и получить стандартный вывод из командного файла. Во втором фрагменте кода я не могу перехватить стандартный вывод.
Мне нужно иметь возможность запускать пакетный скрипт с повышенными разрешениями, поэтому я ищу компромисс между функциональностью этих двух.
Я не могу запустить весь вызывающий скрипт в режиме повышенных прав из-за ограничений других функций.
Я ищу какие-либо идеи о том, как добавить этот вывод в мой журнал, поскольку у меня заканчиваются опции, входящие в сферу основных сценариев.