Захват консольного вывода запущен с повышенными привилегиями - PullRequest
0 голосов
/ 01 марта 2009

Я пишу инструмент командной строки, который требует повышения привилегий. Это может быть успешно реализовано с использованием манифеста.

Но если этот инструмент запускается из cmd.exe или Far Manager (far.exe), создается новое окно консоли. Таким образом, все выходные данные консоли инструмента записываются в него и теряются при закрытии.

Так что моя идея заключается в реализации форка, где первая часть кода вызывает один и тот же исполняемый файл с некоторым аргументом и Process.ProcessStartInfo в дополнительном усилении UseShellExecute = true, Verb = "runas"; а другая часть, вызываемая с аргументом, делает то, что требует повышения привилегий.

Можно ли «виртуализировать» мой инструмент заново, захватив выходные данные из второго экземпляра и перенаправив его на первый?

1 Ответ

0 голосов
/ 01 марта 2009

Если это возможно, это потенциальная проблема безопасности. Если какой-либо процесс может запустить другой процесс (или даже сам) с повышенными правами и перехватить его вывод, это может привести к раскрытию информации.

...