我需要在c#应用程序中运行一个提升的命令并获取输出。
我正在创建一个新的System.Diagnostics.Process
实例,并加上一个新的System.Diagnostics.ProcessStartInfo
实例。
该命令正在发送给cmd.exe
,遗憾的是,可能需要提升用户访问权限(意味着UseShellExecute = true
和Verb = "runas"
必须存在)。
使用UseShellExecute = true
后,RedirectStandardOutput
无效。
重要的是我记录了命令的输出,但我能看到的唯一方法就是在参数列表中添加类似> output.txt
的内容,然后调用System.IO.File.ReadAllText
来读取结果。
任何人都可以想到更少的hacky方式吗?