ALLUSERS 属性
ALLUSERS 属性可配置包的安装上下文。 Windows Installer 根据以下因素来确定是执行每用户安装还是每计算机安装:用户的访问权限、安装应用程序是否需要提升权限、ALLUSERS 属性的值、MSIINSTALLPERUSER 属性的值以及操作系统的版本。
ALLUSERS 属性的值在安装时确定安装上下文。
如果 ALLUSERS 属性值为 1,则指定每计算机安装上下文。
如果 ALLUSERS 属性值为空白字符串 (""),指定每用户安装上下文。
如果将 ALLUSERS 属性的值设置为 2,则 Windows Installer 始终将 ALLUSERS 属性的值重置为 1 并执行每计算机安装,或者 Windows Installer 将 ALLUSERS 属性的值重置为空字符串 ("") 并执行每用户安装。 值 ALLUSERS=2 使系统能够重置 ALLUSERS 的值和安装上下文,具体取决于用户的权限和 Windows 版本。
Windows 7:将 ALLUSERS 属性设置为 2 以使用 MSIINSTALLPERUSER 属性指定安装上下文。 对于每计算机安装,请将 MSIINSTALLPERUSER 属性设置为空字符串 ("")。 对于每用户安装,将 MSIINSTALLPERUSER 属性设置为 1。 如果包是按照单个包创作中描述的开发指南编写的,则具有用户访问权限的用户可以安装到每个用户的上下文中,而不必提供 UAC 凭据。 如果用户具有用户访问权限,则仅当向 UAC 对话框提供管理员凭据时,安装程序才执行每计算机安装。
Windows Vista:将 ALLUSERS 属性设置为 2,并且 Windows Installer 符合用户帐户控制 (UAC)。 如果用户具有用户访问权限并且 ALLUSERS=2,则仅当向 UAC 对话框提供管理员凭据时,安装程序才执行每计算机安装。 如果启用了 UAC 但没有提供正确的管理员凭据,则安装会失败,并显示一条错误,指出需要管理员权限。 如果注册表项、组策略或控制面板禁用了 UAC,则不会显示 UAC 对话框,并且安装会失败并显示一条错误,指出需要管理员权限。
Windows XP:将 ALLUSERS 属性设置为 2,如果用户具有用户访问权限,则 Windows Installer 将执行每用户安装。
如果 ALLUSERS 属性的值不等于 2,Windows Installer 将忽略 MSIINSTALLPERUSER 属性的值。
<!-- Disallow user from installing for all users -->
<Property Id="ALLUSERS" Secure="yes"/>
<Condition Message="Setting the ALLUSERS property is not allowed because [ProductName] is a per-user application. Setup will now exit.">
NOT ALLUSERS
</Condition>
GitHub 上的 Windows 经典示例中的例子。
建议的默认安装上下文是每用户。 如果未设置 ALLUSERS,安装程序将执行每用户安装。 通过将 ALLUSERS 属性的值设置为空字符串 (""),即 ALLUSERS=“”,可以确保没有设置该属性。
安装上下文确定 DesktopFolder、ProgramMenuFolder、StartMenuFolder、StartupFolder、TemplateFolder、AdminToolsFolder、ProgramFilesFolder、CommonFilesFolder、ProgramFiles64Folder 和 CommonFiles64Folder 属性的值。 安装上下文确定 Registry 表和 RemoveRegistry 表中的条目已写入或删除的注册表部分(Root 列中有 -1)。
要求 | 值 |
---|---|
版本 |
Windows Server 2012、Windows 8、Windows Server 2008 R2 或 Windows 7 上的 Windows Installer 5.0。 Windows Server 2008 或 Windows Vista 上的 Windows Installer 4.0 或 Windows Installer 4.5。 Windows Server 2003 或 Windows XP 上的 Windows Installer。 若要了解 Windows Installer 版本所需的最低 Windows Service Pack,请参阅 Windows Installer 运行时要求。 |