我有一个普通用户将运行的exe,但它需要合并一个 REG 文件,这需要UAC弹出窗口询问管理员密码,我不想提供给用户。
我可以通过process.StartInfo
传递密码,以便UAC不必要求输入密码吗?
如果我这样做:
process.StartInfo.Domain = "XYZ";
process.StartInfo.UserName = "admin";
process.StartInfo.Password = "";
它告诉我,我需要得到平衡。
我还试图冒充管理员帐户,然后:
process.StartInfo.Verb = "runas";
process.start()
但它会崩溃:
未处理的异常:System.ComponentModel.Win32Exception:未知错误(0xfffffffe)
答案 0 :(得分:1)
不,你不能这样做。如果您可以轻松绕过UAC,那就没有意义了。
即使您知道密码,也会使用已删除的权限创建安全令牌。这是当您登录Windows时发生的情况:您提供了用户名和密码,但您没有立即获得所有管理员权限,您必须通过UAC确认提升。