通过Process.Start获取CMD输出,并在C#中使用UseShellExecute = true

max*_*axp 5 c# cmd

我需要在我的c#应用程序中运行一个提升的命令并获得输出.

我正在创建一个新System.Diagnostics.Process实例,再加上一个新System.Diagnostics.ProcessStartInfo实例.

该命令被发送到cmd.exe,不幸的是,可能需要提升的用户访问(含义UseShellExecute = trueVerb = "runas"必须存在).

由于使用UseShellExecute = true,RedirectStandardOutput将无法正常工作.

重要的是我记录命令的输出,但我能看到的唯一方法是添加类似于> output.txt参数列表,然后调用System.IO.File.ReadAllText以读取结果.

任何人都可以想到更少的hacky方式?