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