我使用Inno Setup来部署应用程序。
对于大多数情况,不需要管理员权限的每用户安装都可以。但是,在某些情况下我需要为所有用户安装应用,例如对于Citrix或TSE。
不幸的是,似乎无法在每用户和每台机器安装之间动态选择。它取决于PrivilegesRequired
设置,该设置在编译时设置。
我最近的解决方法几乎让我在那里。基本上我有PrivilegesRequired
设置为lowest
的设置,如果我需要为所有用户安装,我会使用管理员权限重新启动设置。这有效,但仍然会将卸载信息写入HKEY_CURRENT_USER
而不是HKEY_LOCAL_MACHINE
。
我的问题:
- 有没有办法通过Inno Setup实现双用户/每台机器的安装? (没有生成两个不同的安装程序)
- 如果没有,当HKEY_LOCAL_MACHINE
设置为PrivilegesRequired
时,有没有办法将卸载信息写入lowest
?
编辑:this question的已接受答案并不适用于我的情况。我想仅在命令行上传递特定参数(/AllUsers
)时才请求UAC提升。如果没有这个参数,即使用户是管理员,UAC提示也不会出现。 TLama的答案与我目前的方法有同样的问题。