Inno-Setup:无管理员权限的卸载

Rob*_*sus 6 windows inno-setup

使用Inno-Setup,我需要默认用户卸载管理员用户安装的软件.

参数PrivilegesRequired最低的,但问题仍然存在.

我在一些机器上进行了测试(所有这些都是Windows 7),有些我可以使用默认用户卸载,但还有一些机器不允许我卸载并请求管理员用户.

我没有在问题和互联网搜索中找出模式.

安装文件夹是C:\;

我没有使用[Registry]部分,[Dirs]部分中的所有参数都使用Permissions:users-modify

Tho*_*ler 0

有几件事需要考虑:

  1. 通常,安装文件夹是 %ProgramFiles% 或 %ProgramFiles(x86)%,这是受操作系统保护的文件夹。要绕过此保护,安装程序必须更改安装文件夹的权限以允许任何人删除。

    [Dirs]部分中,您可以使用Permissions:users-modify(或者如果需要的话甚至更宽松)。

  2. [注册表]部分类似。

  3. InnoSetup 使用一个名为卸载的文件unins000.exeasInvoker该文件包含默认请求权限的清单。据我所知,这不会随着PrivilegesRequired设置而改变。到目前为止,asInvoker应该没问题。请密切关注它,以防新版本的 InnoSetup 将其设置为更高的值。


对于发现此问题但未使用 InnoSetup 的其他访问者:

如果您未在安装程序中嵌入清单,Windows 将使用启发式方法进行安装程序检测(Microsoft、.pptx)。如果启发式结果为肯定,Windows 将自动请求管理员提升。因此,请使用清单并请求asInvoker权限。