如何通过 GUI UAC 提示符保存管理员密码
本文关键字:保存 管理员 密码 提示符 UAC 何通过 GUI | 更新日期: 2023-09-27 18:34:46
我有我的 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 时仅显示一次 GUI UAC 提示是可以接受的.exe
带有/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?
附言我不知道管理员密码,用户应该自己输入。
如KooKiz所述,您可以要求用户以管理员身份启动主进程,这样它就不再提示UAC运行其他程序。
程序启动时如何请求管理员权限?