【问题标题】:How to execute a task as administrator transparently in Windows如何在 Windows 中以管理员身份透明地执行任务
【发布时间】:2013-01-05 21:10:15
【问题描述】:

我想(以编程方式)模拟 Windows 在某些提升情况下的行为。例如,您可以查看无线密码,而无需向管理员确认提升(在无线网络属性 > 显示字符中)。

在这种情况下,没有弹出窗口来请求确认提升。有一个简单的友好图标,表明该操作要求用户是管理员。

【问题讨论】:

  • 您需要让 MS 签署并将您的代码作为 Windows 的直接部分发送到某些特定的“安全”目录中......任何其他选项都意味着“破解”操作系统......我很漂亮确保这对于 MS 以外的任何人都是不可能的......所以我看不出你如何能够实现你想要的......

标签: c# c++ windows winapi


【解决方案1】:

某些场景下没有弹窗的原因是UAC自动提升。

这是 Mark Russinovich 撰写的 this article 的摘录

在两个中间设置中提升(大多数)Windows 可执行文件不会导致提示的原因是系统“自动提升”Windows 可执行文件。首先,在这种情况下,Windows 将什么定义为 Windows 可执行文件?答案取决于几个因素,但有两点必须成立:它必须由 Windows 发布者进行数字签名,这是用于签署 Windows 包含的所有代码的证书(由 Microsoft 签名是不够的,因此 Microsoft 软件不是不包括在 Windows 中提供的);它必须位于少数几个“安全”目录之一中。

这意味着您的可执行文件必须由 Microsoft 签名,并且必须位于那些“安全”目录中。 Windows 不会自动提升所有内容。

【讨论】:

  • 引用您的报价:“仅由 Microsoft 签名是不够的”
猜你喜欢
  • 2023-03-07
  • 1970-01-01
  • 2015-09-26
  • 1970-01-01
  • 1970-01-01
  • 2021-12-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多