【发布时间】:2018-09-20 21:02:12
【问题描述】:
用户正在将我自己的应用程序安装到 APPDATA 文件夹中,无需任何管理员权限。
这很好用。
通过 Windows 10 控制面板卸载我的应用程序时,会出现一个 UAC 确认消息框:
(仅限德语,抱歉)
我的 (NSIS) 安装程序和 (NSIS) 卸载程序都使用 SHA-1 和 SHA-256 进行了 Authenticode 签名。
卸载程序的清单包含:
<requestedExecutionLevel level="asInvoker" uiAccess="false"/>
即它不强制以管理权限运行。
仍然会出现(我认为不必要的)UAC 对话框。
我的问题:
作为设置创建者,我是否能够告诉 Windows 10 在不显示 UAC 对话框的情况下卸载我的应用程序?
更新 1:
回复Hans' comment,我明白他在说什么,还有其他应用程序,例如这个来自微软的做卸载没有任何 UAC 对话框:
或者例如
似乎它们都有一个共同点,那就是它们都是 UWP 应用程序。
【问题讨论】:
-
这是不可能的。卸载应用程序与安装应用程序一样有风险。通常风险更大,一个坏的很容易因为删除太多而造成很大的损害,也会削弱其他程序。程序员倾向于认为 UAC 旨在阻止他们做他们的事情。一点也不。用户需要知道他的机器何时被弄乱了,该对话框告诉他。为用户提供有用的信息是一项功能,而不是错误。
-
@HansPassant 谢谢。我想我明白了。尽管如此,有许多应用程序确实会卸载,没有显示任何 UAC 对话框。我用一个例子更新了我的问题。
-
UWP 不使用传统的 MSI 安装程序方法。这在很大程度上是可行的,因为 UWP 应用程序始终在安全沙箱中运行,必须将其数据存储在隔离存储中,并且不允许假设其他任何人安装了他们需要的组件。 UWP 应用程序无法通过设计完成很多事情,因此它不是一个通用的解决方案。
-
这是设置应用程序中的一个错误,微软似乎并不在意。
标签: windows-10 nsis uninstallation uac