我正在尝试使用以下代码运行 cmd 命令:
ProcessStartInfo cmd = new ProcessStartInfo("cmd.exe");
cmd.RedirectStandardInput = true;
cmd.RedirectStandardOutput = true;
cmd.RedirectStandardError = true;
cmd.UseShellExecute = false;
cmd.CreateNoWindow = true;
cmd.WindowStyle = ProcessWindowStyle.Hidden;
Process exec = Process.Start(cmd);
exec.StandardInput.WriteLine("sc create \"BaliService\" binPath= \"{0}\\BaliService.exe\"", Directory.GetCurrentDirectory());
此命令需要管理员权限,如果我以管理员身份运行 cmd 并键入命令,它可以完美运行,但当我以管理员身份运行此应用程序时却不行。我已经添加了
<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
到一个清单文件,每次我打开 exe 时都会提示 uac。
我已经看到了多个关于此的问题,它们似乎都表明在提升的应用程序下运行的任何进程都将具有相同的权利,但这对我不起作用。
我试过cmd.Verb = "runas";
但没有骰子。