我想使用来自C#cmd.exe
的参数以管理员身份运行,以防止UAC弹出。这是必要的,以便将其用作自动安装过程。我传入的命令只是用于安静安装的安装文件 (.exe) 的路径。/q
当我运行此代码时,有一个 CMD 弹出窗口,但它运行时就好像它没有执行任何操作一样。
public static string ExecuteCommandAsAdmin(string command)
{
ProcessStartInfo procStartInfo = new ProcessStartInfo()
{
RedirectStandardError = true,
RedirectStandardOutput = true,
UseShellExecute = false,
CreateNoWindow = true,
FileName = "runas.exe",
Arguments = "/user:Administrator cmd /K " + command
};
using (Process proc = new Process())
{
proc.StartInfo = procStartInfo;
proc.Start();
string output = proc.StandardOutput.ReadToEnd();
if (string.IsNullOrEmpty(output))
output = proc.StandardError.ReadToEnd();
return output;
}
}