正如其他帖子所讨论的,我开始知道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#和输出中的代码进行提升?
答案 0 :(得分:0)
Process.Start()可以使用操作系统或命令行管理程序(Explorer.exe)生成新进程,但只有命令行管理程序会提示您提升权限。
因此,根据以下答案,您必须在ProcessStartInfo中指定UseShellExecute = true:processstartinfo-verb-runas-not-working
UseShellExecute = false将允许您捕获Standard Output and Standard Error条消息。