簡體   English   中英

動詞=“ runas”未以提升的方式運行

[英]Verb = “runas” not run as elevated

正如在其他文章中所討論的那樣,我知道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#中的代碼進行“提升”並輸出?

Process.Start()可以使用OS或命令行管理程序(Explorer.exe)生成新進程,但只有命令行管理程序會提示您提升權限。

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

UseShellExecute = false將允許您捕獲標准輸出和標准錯誤消息。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM