如何通过GUI UAC提示保存管理员密码?

时间:2014-12-19 13:25:51

标签: c# .net window uac runas

我的C#WinForm应用程序运行另一个具有管理员权限的“devcon.exe”控制台应用程序:

var startInfo = new ProcessStartInfo
{
    FileName = fileName, // filename C:\....\devcon.exe
    WindowStyle = ProcessWindowStyle.Hidden, // we don't want to see devcon.exe window
    Arguments = "restart " + deviceID, // some arguments for devcon.exe console application
    Verb = "runas" // run as administrator
};
Process.Start(startInfo).WaitForExit();

因此,每次启动devcon.exe时都会显示GUI UAC提示符。

但用户不希望每次都看到GUI UAC提示。首次启动devcon.exe

时,只能显示一次GUI UAC提示符 使用/ savecred运行runas.exe可以帮助保存管理员密码,并在首次启动devcon.exe时只询问一次:

Process.Start(“cmd.exe”,@“/ C runas.exe / savecred / user:”+“admin”+“”+“\”C:\ ... \ devcon.exe restart“+ deviceID +“\”“);

但在这种情况下会显示控制台提示(它要求输入管理员密码)。

用户不希望看到控制台提示,他们希望看到GUI UAC提示。在这种情况下,如何显示GUI UAC提示而不是控制台提示?如果runas.exe使用/ savecred是不可能的,如何在首次启动devcon.exe时只保存一次管理密码?

P.S。我不知道管理员密码,用户应自行输入。

1 个答案:

答案 0 :(得分:0)

正如KooKiz所述,您可以要求您的用户以管理员身份启动主进程,以便它不再提示UAC运行其他程序。

How to request administrator permissions when the program starts?