我想以管理員身份運行cmd.exe
,參數爲C#,以防止出現UAC彈出窗口。這是必要的,以便將其用作自動化安裝過程。我傳入的命令只是安裝文件(.exe)的一個路徑,其安裝文件爲/q
。以C#參數的管理員身份運行CMD
當我運行這個代碼時,有一個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;
}
}
這就是UAC存在的原因,以防止不必要的/潛在的惡意特權升級悄然發生。 – 2013-05-13 19:32:59
它是不是更容易提升它的自我微星:http://stackoverflow.com/questions/8721349/how-do-install-with-elevated-permissions-using-a-wix-installer但記住,你可以不跳過UAC .... – rene 2013-05-13 19:36:55