0

我正在编写一个需要提升权限的命令行工具。这可以使用清单成功实现。

但如果从 cmd.exe 或 Far Manager (far.exe) 启动此工具,则会创建一个新的控制台窗口。因此,所有工具控制台输出都会写入其中,并在关闭时丢失。

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

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

4

1 回答 1

0

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

于 2009-03-01T00:06:34.833 回答