动词 = “runas” 不以提升的方式运行

正如在其他帖子中所讨论的,我开始知道 Verb = "runas" 可以提升。


我需要以高权限运行“logman.exe”参数。使用下面的代码,我没有得到任何输出,


try

        {

            var process = new Process()

            {

                StartInfo = new ProcessStartInfo

                {

                    FileName = "logman.exe",

                    Arguments = "PerfCounterCustom",

                    Verb = "runas",

                    RedirectStandardOutput = true,

                    CreateNoWindow = true,

                }

            };


            process.Start();


            string lineData;

            while ((lineData = process.StandardOutput.ReadLine()) != null)

            {

                if (lineData.Contains("Root Path:"))

                {

                    Console.WriteLine(lineData.Trim());

                }

            }


            process.WaitForExit();

        }

        catch (Exception ex)

        {

            Console.WriteLine(ex.ToString());

        }

注意 - 当我在 EXE 上运行时,以管理员身份右键单击,我得到了输出。


需要进行哪些更改才能通过 C# 中的代码和输出进行提升?


跃然一笑
浏览 369回答 1
1回答

PIPIONE

Process.Start() 可以使用 OS 或 Shell (Explorer.exe) 来生成新进程,但只有 Shell 会提示提升。因此,您必须根据以下答案在 ProcessStartInfo 中指定 UseShellExecute=true:processstartinfo-verb-runas-not-workingUseShellExecute=false 将允许您捕获标准输出和标准错误消息。
打开App,查看更多内容
随时随地看视频慕课网APP