2009-02-24 64 views
0

我正在編寫控制檯工具。如果沒有權限提升UAC支持(清單文件),從命令提示符(cmd.exe)或控制檯文件管理器(如far.exe)調用此工具將在同一窗口中打開它,將其輸出寫入同一窗口等使用清單打開新控制檯窗口提升UAC的權限

但是現在,當manifest file was added,一個新的控制檯窗口創建工具後UAC請求對話框,所以工具的輸出寫在那裏,窗口關閉。這種工具無法用於控制檯。

如何解決這個問題?有什麼解決方法?

回答

2

就我所知,沒有辦法「修復」。此行爲是有意設計的,旨在確保您提升的任何命令行工具不受未升級的命令行中的任何路徑修改的影響。

這個想法是,在一天的工作中,人們在他們的機器上運行任何程序。這些程序可能會修改用戶的路徑,以便文件夾包含名爲reg.exe的惡意程序,例如放在c:\ windows \ system32之前。然後用戶運行一個需要提升的管理工具,該工具調用reg.exe而不指定路徑,並且瞧 - 你是擁有的。

您應該真的考慮將工具的輸出結果存入日誌文件。或者,您可以分兩部分開發工具 - 不需要提升的控制檯工具和需要提升的COM超程處理服務器。