【问题标题】:Inno setup - install app to Program Files, allow run not as adminInno setup - 将应用程序安装到 Program Files,不允许以管理员身份运行
【发布时间】:2010-04-21 22:12:54
【问题描述】:

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

我希望用户能够运行 MyApp,而无需在每次运行应用时都被管理或与 UAC 屏幕作斗争。如果他们必须通过 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 保护。

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

【问题讨论】:

    标签: windows-vista inno-setup


    【解决方案1】:

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

    【讨论】:

    • 这不是一个真正的答案,程序的标准安装位置是 PF...而且我的用户还可以选择位置。我认为安装程序可以删除我安装的 PF 子文件夹上的 UAC 保护?
    • 这实际上是一个最佳答案,因为它解决了这两个问题(安装或运行时没有 UAC 提示)。将程序安装到用户可写路径(Chrome、ClickOnce 应用程序等)已不再常见。我不建议调整 {pf} 下文件夹的权限,但如果您坚持,请尝试以下操作:权限:users-modify powerusers-modify admins-modify system-modify
    • 在我看来,Chrome 是一个不好的例子。它会在不告诉你的情况下更新!无论如何,不​​应该询问用户他们想在哪里安装应用程序吗?
    • 你仍然可以允许用户选择安装位置(虽然我不确定我是否会推荐它,因为白痴和不断改进的白痴),但他们需要指定一个位置如果你想在没有 UAC 提示的情况下支持安装,那是用户可写的。
    • 所以,只是想知道...“权限:所有人修改”是否在 安装在 {pf} 中时工作?我个人会使用 users-modify ;似乎更安全。
    【解决方案2】:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-09-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-09-01
      • 2012-02-07
      • 1970-01-01
      • 2020-06-11
      相关资源
      最近更新 更多