Inno设置 - 将应用程序安装到Program Files,允许以管理员身份运行

时间:2010-04-21 22:12:55

标签: windows-vista inno-setup

我的安装程序将应用程序安装到“Program files \ MyApp”,该应用程序在此位置运行更改文件时。在Vista上,默认情况下会出现UAC问题。

我希望用户能够在每次运行应用时无需admisn或对抗UAC屏幕即可运行MyApp。如果他们必须通过UAC来安装应用程序,那就没关系,但仍然不是最佳的。

我以为我有这个设置,但是它不起作用:

[Setup]
PrivilegesRequired=admin
AppName=My App
AppVerName=My App 1.0
DefaultDirName={pf}\MyApp
DefaultGroupName=MyApp
UninstallDisplayIcon={app}\bin\MyApp.ico
OutputDir=..\Installer
ChangesAssociations=yes

[Dirs]
Name: "{app}\"; Permissions: everyone-modify
Name: "{app}\redist"; Flags: deleteafterinstall;

具体而言,我认为Name: "{app}\"; Permissions: everyone-modify会让普通用户运行它,删除Program Files \ MyApp上的UAC保护。

我随机选择了一些值,有人可以建议一些变化吗?同样,目标是一旦安装,非管理员帐户中的普通用户即使文件保存在程序文件中也可以运行它,而无需启动UAC。作为次要的事情,安装本身不应该太疯狂......管理员密码或UAC授权的单一提示。

2 个答案:

答案 0 :(得分:1)

请勿在{pf}下安装。而是安装到用户可写的位置(例如,{localappdata}) http://www.kinook.com/blog/?p=53

答案 1 :(得分:1)

您应该更改您的应用,以便将共享数据保存在其他文件夹中。

授予任何用户对PF中包含可执行代码(exe,dll等)的文件夹的写权限是一个安全问题(Evil用户可以修改exe文件并等待管理员运行它)

Alernativly您可以将文件存储在PF的子文件夹中,并且只授予对它的写入权限,这样您的可执行文件就是安全的。