因此情况如此:我们使用Inno Setup创建安装程序。该软件将由管理员安装(例如,在将计算机提供给用户之前设置该计算机),但我们希望普通用户能够卸载/更新安装(没有管理员权限)。调整安装文件的权限并在安装后运行icacls.exe以授予所有用户访问卸载程序可执行文件的权限,这让我几乎达到了目标。
唯一缺少的是,如果管理员安装程序,则在控制面板 - >中不可见。卸载程序 - 其他用户列表。 (非管理员)用户必须知道在哪里找到uninst000.exe并运行它。
如何制作Inno Setup安装脚本,以便任何用户(有或没有管理员权限)可以通过控制面板卸载程序?
答案 0 :(得分:0)
您可以使用PrivilegesRequired=none
。
它与PrivilegesRequired=lowest
类似,不同之处在于它会尝试编写非用户区域。这尤其意味着它会将卸载密钥写入HKLM。
请注意none
值不再正式记录:
另一个选择是您自己在HKLM中创建卸载密钥。使用{uninstallexe}
常量来解析安装程序的路径。
虽然这只会将卸载程序密钥添加到HKLM。但是,只要安装程序以管理员权限运行,卸载程序仍将需要管理员权限。这是内置于卸载程序中的,无论如何都无法配置。
这是有道理的,否则卸载程序无法从HKLM中删除其卸载程序密钥。
无论如何,如果你真的需要破解它,你可以从uninsxxx.dat
删除一个标志,指示安装程序是以管理员权限运行的。