繁体   English   中英

NSIS指南:我的安装程序和程序在各种UAC场景下的客户问题

[英]NSIS Guidance: Customer issues with various UAC scenarios with my installer and program

我是一名游戏开发人员,为所有类型的Windows(WinXP,Vista,Win7,Win8,包括X64变体)发布了桌面MMO游戏,其受众范围从技术精通到非技术精通。

游戏需要能够在任何时候定期进行自我更新,这意味着需要使用适当的UAC特权在客户的计算机上安装和配置游戏,以便可以更新安装的所有文件,包括可执行文件本身。

我创建了一个NSIS安装程序,该程序配置为在没有管理员特权(RequestExecutionLevel用户)的情况下运行,并将游戏(默认情况下)安装到该用户的$ LOCALAPPDATA,以便该游戏不需要提升的特权即可执行。 我为我的游戏安装的可执行文件是用一个清单文件构建的,该清单文件通知Windows它不需要提升的特权(这是为了避免每次尝试玩游戏时都出现难看的盾牌图标和管理提示)。

我遇到的原始问题如下:

  1. 客户正在下载NSIS安装程序,然后将其复制到特权位置,并且该安装程序无提示运行而无提示地静默运行,因为它没有管理员特权即可运行。

作为临时的解决方法,我重建了NSIS安装程序,使其以管理员权限运行,但是这可能会带来另一个问题,即客户将默认安装目录更改为特权目录,然后游戏本身将无法执行。 作为该问题的临时解决方法,在我想出一个完整的解决方案之前,我已禁用了更改默认安装位置的功能。

我能想到的理想解决方案是一种允许NSIS正常运行,检测其是否需要管理员特权并在此时提示的方法,然后禁止播放器安装到提升特权的位置。 我对NSIS的经验不足,无法确定是否有可能。

任何指导将不胜感激!

可执行文件,无论是安装程序还是简单的应用程序,都没有关系,应该能够从需要特权写入的位置(例如Program Files文件夹)运行,即使没有提升。 可执行文件需要这些特权的唯一时间是,如果它实际上尝试在该位置进行写入,则安装程序的情况是,例如,它是否尝试提取一些在文件夹中执行安装所需的临时文件。复制到哪里。

例如,您的计算机中安装在Program Files文件夹中的许多应用程序之一,不需要运行管理员权限,只需双击快捷方式即可打开它。

检查我不熟悉NSIS体系结构的安装程序是否对安装过程中使用的临时文件使用特殊的提取文件夹,并查看是否可以将其更改为不需要管理员特权的位置。

我能想到的理想解决方案是一种允许NSIS正常运行,检测其是否需要管理员特权并在此时提示的方法,然后禁止播放器安装到提升特权的位置。

就我所知,即使使用低级API也无法做到这一点,但是最重要的是,您不需要应用这样的解决方案。 如果我是对的,则解压缩文件夹应该是导致您出现问题的文件夹。 希望NSIS允许您轻松地进行配置并将其设置在正确的位置。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM