动词=" runas"没有升高

时间:2018-05-22 14:02:12

标签: c# process elevated-privileges

正如其他帖子所讨论的,我开始知道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上方运行时,右键单击Admin,我得到输出。

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

1 个答案:

答案 0 :(得分:0)

Process.Start()可以使用操作系统或命令行管理程序(Explorer.exe)生成新进程,但只有命令行管理程序会提示您提升权限。

因此,根据以下答案,您必须在ProcessStartInfo中指定UseShellExecute = true:processstartinfo-verb-runas-not-working

UseShellExecute = false将允许您捕获Standard Output and Standard Error条消息。