2009-02-28 71 views
0

我正在编写一个需要提升权限的命令行工具。这可以使用清单成功实施。用提升的权限启动抓取控制台输出

但是,如果此工具是从cmd.exe或远程管理器(far.exe)启动的,则会创建一个新的控制台窗口。所以所有的工具控制台输出都写入它并在关闭时丢失。

所以我的想法是实现一个叉,其中的代码第一部分调用相同的可执行文件的一些参数和Process.ProcessStartInfo额外收益UseShellExecute = trueVerb = "runas";而另一部分被称为参数,正在做什么特权提升。

是否有可能通过从第二个实例中获取输出并将其重定向到第一个实例来重新虚拟化我的工具?

回答

0

如果可能,这是一个潜在的安全问题。如果任何进程可以启动另一个进程(甚至自己)提升并拦截其输出,则可能导致信息泄露。