使用 Inno Setup,我需要管理员用户安装的软件可以被默认用户卸载。
参数PrivilegesRequired
是最低
,但问题依旧。
我在一些机器上进行了测试(它们都是 Windows 7),在一些机器上我可以使用默认用户卸载,但还有一些机器不允许我卸载并请求管理员用户。
我没有在问题和互联网搜索中找到规律。
安装文件夹为C:\;
我没有使用 [Registry]
部分,[Dirs]
部分中的所有参数都使用了 Permissions: users-modify
。
最佳答案
有几点需要考虑:
通常,安装文件夹是 %ProgramFiles% 或 %ProgramFiles(x86)%,这是一个受操作系统保护的文件夹。要绕过此保护,安装程序必须更改安装文件夹的权限以允许任何人删除。
在[Dirs]部分,您可以使用
Permissions:users-modify
(如果需要甚至更宽松)。类似于 [Registry]部分。
InnoSetup 使用名为
unins000.exe
的文件进行卸载。此文件包含一个 list ,默认情况下请求特权asInvoker
。据我所知,这不会随PrivilegesRequired
设置而改变。到目前为止,asInvoker
应该没问题。请密切注意它,以防新版本的 InnoSetup 将其设置为更高的值。
对于发现此内容但未使用 InnoSetup 的其他访问者:
如果您没有在安装程序中嵌入 list ,Windows 将使用 heuristics for installer detection (Microsoft, .pptx) .如果试探法得出肯定的结果,Windows 将自动请求管理员提升。因此,使用 list 并请求 asInvoker
权限。
关于windows - Inno 安装程序 : Uninstall without administrator privilege,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33155666/