gpt4 book ai didi

windows - 如何防止标准 Windows 10 用户的卸载程序升级?

转载 作者:可可西里 更新时间:2023-11-01 12:44:04 24 4
gpt4 key购买 nike

我们有一个 x86 Win32 桌面应用程序。当安装程序由标准(非管理员)用户运行时,我们避免提升和/或显示 UAC 提示,而是在 C:\Users\username\AppData\Roaming\... 下安装通用 Program Files 目录。

在 Windows 10 上,当我们从 Control Panel -> Programs -> Programs and Features 启动我们的卸载程序时,没有显示 UAC 提示并且卸载程序在没有提升的情况下运行。这是期望的行为。当从 Start -> Settings -> System -> Apps & features 启动相同的卸载程序时,会显示 UAC 提示。

(在 Opera 浏览器安装程序/卸载程序中可以看到相同的行为。我测试了 v35.0.2066.37。)

为什么从 应用程序和功能程序和功能 启动同一个卸载程序时表现不同?

如何避免从应用程序和功能中启动卸载程序时出现 UAC 提示?

我们卸载程序的 list 包括:

<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
<security>
<requestedPrivileges>
<requestedExecutionLevel level="asInvoker" />
</requestedPrivileges>
</security>
</trustInfo>

我尝试更改 requestedExecutionLevel,还尝试完全删除 trustInfo,但两种方式都没有改变行为。

在 Windows 10 版本 1511 内部版本 10586.104 上测试。

编辑:澄清一下,我要处理的案例是用户拥有标准帐户但不知道管理员帐户的密码。如果他们在尝试卸载时看到 UAC 提示,他们别无选择,只能取消卸载,我们的卸载程序也不会运行。

最佳答案

据我所知,这是“应用程序和功能”中的错误。 WiX 人有 closed this issue作为 Windows 错误,我认为他们已经通知了正确的人@Microsoft。尽管 Insider 内部版本 15042 中的行为仍然相同,因此它可能不会在 Creators Update 中及时得到修复。

如果标准用户无法提升,则没有您可以使用的解决方法。

如果他们可以提升,那么您可以使用 re-spawn workaround在评论中发布或手动加载用户配置文件并调用 RegOverridePredefKey 但它们都是丑陋的 hack(恕我直言)。

关于windows - 如何防止标准 Windows 10 用户的卸载程序升级?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35469595/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com