我的一个应用程序有一个Windows版本,我使用NSIS制作了一个安装程序,当前版本安装到“程序文件”中。
据我所知,只有安装程序以管理员身份运行并且可能会对某些用户(企业PC ......)造成问题时,它才有效。
此类安装程序的Windows最佳做法是什么?强制用户成为管理员?提供在别处安装的选项吗?
(我是UNIX / Mac的家伙,因此在Windows应用程序方面真的不知道福音书)
以下是NSIS脚本,以防有人想看看:https://github.com/nickbnf/glogg/blob/master/glogg.nsi
答案 0 :(得分:1)
我建议您始终为这些安装设置ALLUSERS = 1。
修改强>
Litte的加入让你无穷无尽地阅读msdn文章。
ALLUSERS=1
强制安装为每台计算机。这样可以保持用户配置文件的清洁,并使软件在企业环境中可管理。即使用户未登录,您也可以随时安装和删除软件。此类环境中也无法删除ALLUSERS=2
(允许每用户安装)。
您可以在属性表中或通过命令行设置属性:
msiexec.exe myPackage.msi ALLUSERS=1
答案 1 :(得分:1)
在Windows中,通常认为要求管理员访问安装软件是一种好习惯。企业实际上喜欢这个功能,因为这意味着某些人未经公司许可就无法安装软件。软件通常应该进入Program Files或Program Files(x86)目录,并且需要有意管理员访问。
这条规则有一些例外,但它们很少见。为了安全地为每个用户安装软件,您需要保证:
1)安装程序可以从Program Files(或其他机器范围的位置)以外的其他地方运行。
2)软件本身不会写入机器范围的位置。
3)您不向机器范围的注册表位置写任何内容(例如HKEY_LOCALMACHINE)。
老实说,这是一个更复杂的问题。这真的取决于你在做什么。如果你可以通过点击一次安装来逃脱,那么这可能是最好的选择,你可以通过部分信任来做到这一点,这意味着你不需要管理员访问权限,并且你大部分保证使用将是用户。
答案 2 :(得分:1)
默认选项应该始终是每台机器安装,即需要管理员访问权限,但如果您能够提供每用户安装,这是一个额外的奖励,可能会使一些人的生活更轻松。
在可行的情况下,最佳做法是提供两个版本:一个带有安装程序,另一个只需运行而无需安装。后者被称为portable application。
(虽然我引起了您的注意:代表公司IT到处都是,请确保您的安装程序包含经过记录和测试的静音模式,以便我们可以自动安装软件。)