Windows安装程序的最佳实践:admin,非admin或两者兼而有之?

时间:2011-10-27 14:32:54

标签: windows installer nsis

我的一个应用程序有一个Windows版本,我使用NSIS制作了一个安装程序,当前版本安装到“程序文件”中。

据我所知,只有安装程序以管理员身份运行并且可能会对某些用户(企业PC ......)造成问题时,它才有效。

此类安装程序的Windows最佳做法是什么?强制用户成为管理员?提供在别处安装的选项吗?

(我是UNIX / Mac的家伙,因此在Windows应用程序方面真的不知道福音书)

以下是NSIS脚本,以防有人想看看:https://github.com/nickbnf/glogg/blob/master/glogg.nsi

3 个答案:

答案 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到处都是,请确保您的安装程序包含经过记录和测试的静音模式,以便我们可以自动安装软件。)