我正在编写一个需要提升权限的命令行工具。这可以使用manifest。
成功实现但是,如果从cmd.exe或Far Manager(far.exe)启动此工具,则会创建一个新的控制台窗口。所以所有工具控制台输出都写入它并在关闭时丢失。
所以我的想法是关于实现一个fork,其中第一部分代码使用一些参数调用相同的可执行文件,Process.ProcessStartInfo
使用其他增益UseShellExecute = true
,Verb = "runas"
;另一部分,用参数调用,正在做提升所要求的特权。
是否有可能通过抓取第二个实例的输出并将其重定向到第一个实例来“虚拟化”我的工具?
答案 0 :(得分:0)
如果可能,这是一个潜在的安全问题。如果任何进程可以启动另一个进程(甚至自身)升级并拦截其输出,则可能导致信息泄露。