Windows Installer 安全性
(1)问:何谓受管理应用程序?
答:受管理应用程序是一种管理员能够在程序的安装和维护期间对其施加某种控制的程序。受管理应用程序经常用来进行大规模的软件部署。对于系统管理员来说,受管理应用程序为他们允许用户在一个'锁定'环境中安装授权软件提供了方便,在这个环境之中,用户一般没有安装软件所需的权限。
如果满足以下条件,一个应用程序将被认为是受管理的:
可以由(管理员)组的成员为用户进行安装或宣告。
可以由Administrators组的成员以计算机为基础进行安装和宣告。
可以由管理员在Windows 2000或更高版本的操作系统上进行指派或发布。
可以被其它软件或部署管理系统标记为受管理程序。具体方法取决于用户使用的管理系统,但是一般需要由管理员完成这项操作。
安装程序包不能自己宣称自己是'受管理'的,该程序是否为一个'受管理'程序是由系统管理员进行控制的。
请注意:'受管理'和'权限提升'不同。经过权限提升的应用程序是指在安装之时利用系统权限进行运行的程序。所有的受管理应用程序都是权限提升程序,但是权限提升程序却不一定是受管理程序,这是由AlwaysInstallElevated 策略来决定的。出于安全性的考虑,该策略在默认情况下处于禁用状态,在使用此策略之前,请务必对其可能造成的危害加以认真考虑。
(2)问:AdminUser和Privileged 属性有何不同?
答:如果执行安装操作的用户是一个管理员,AdminUser属性将被设置;如果允许用户利用经过提升的权限来安装程序,Privileged属性将被设置。如果用户是一位管理员,用户可以利用经过提升的权限安装程序,无论您是按照用户还是按照计算机设置AlwaysInstallElevated策略,或者,程序已经被系统管理员指派给用户了。
如果用户是管理员,那么AdminUser和Privileged属性都会被设置。如果用户不是管理员,那么AdminUser属性将永远不会被设置。在这种情况下,如果用户已经由管理员通过指派或策略赋予了安装程序所需的提升权限,那么Privileged属性将是唯一被设置的属性。
在很多情况下,我们都建议:无论是启动条件或者是类似条件,都使用Privileged属性代替AdminUser属性来安装由管理员指派的应用程序。
(3)问:应该允许具有用户级权限的用户安装MSI程序吗?
答:如果管理员允许,具有用户级权限的用户可以安装受管理的应用程序。否则,用户只能安装那些写入文件、创建目录和写注册表键的位置与用户拥有的权限相符的MSI应用程序。如果用户不能在某个位置进行写入操作,那么除非管理员为安装程序赋予了写入权限,否则安装程序将不能在该位置写入数据。
