2009-02-24 26 views
0

我正在编写控制台工具。如果没有权限提升UAC支持(清单文件),从命令提示符(cmd.exe)或控制台文件管理器(如far.exe)调用此工具将在同一窗口中打开它,将其输出写入同一窗口等使用清单打开新控制台窗口提升UAC的权限

但是现在,当manifest file was added,一个新的控制台窗口创建工具后UAC请求对话框,所以工具的输出写在那里,窗口关闭。这种工具无法用于控制台。

如何解决这个问题?有什么解决方法?

回答

2

就我所知,没有办法“修复”。此行为是有意设计的,旨在确保您提升的任何命令行工具不受未升级的命令行中的任何路径修改的影响。

这个想法是,在一天的工作中,人们在他们的机器上运行任何程序。这些程序可能会修改用户的路径,以便文件夹包含名为reg.exe的恶意程序,例如放在c:\ windows \ system32之前。然后用户运行一个需要提升的管理工具,该工具调用reg.exe而不指定路径,并且瞧 - 你是拥有的。

您应该真的考虑将工具的输出结果存入日志文件。或者,您可以分两部分开发工具 - 不需要提升的控制台工具和需要提升的COM超程处理服务器。