我有一个普通用户会运行的exe,但它需要合并一个REG文件,这需要UAC弹出窗口询问管理员密码,我不想提供给用户。
有没有办法让我在process.StartInfo
中输入密码,这样UAC就不必索要密码了?
如果我这样做:
process.StartInfo.Domain = "XYZ";
process.StartInfo.UserName = "admin";
process.StartInfo.Password = "";
它告诉我需要被隔离。
我还试图模拟管理员帐户,然后:
process.StartInfo.Verb = "runas";
process.start()
但它将崩溃:
未处理的异常:系统。组件模型。Win32Exception:未知错误(0xfffffffe)
不,你不能那样做。如果你能轻易绕过UAC,那就没有意义了
问题是,即使你知道密码,安全令牌也是用丢弃的权限创建的。当你登录到Windows时会发生这种情况:你提供了用户名和密码,但你不能立即获得所有管理员权限,你必须通过UAC确认进行提升。