关于 Windows Installer 源位置管理器

应用到: System Center Configuration Manager 2007, System Center Configuration Manager 2007 R2, System Center Configuration Manager 2007 R3, System Center Configuration Manager 2007 SP1, System Center Configuration Manager 2007 SP2

如果使用 Windows Installer 安装应用程序,那么当那些 Windows Installer 应用程序需要安装新组件、修复应用程序或更新应用程序时,它们将尝试返回到源安装路径。此位置称为 Windows Installer 源位置。Windows Installer 源位置管理器可以在 Configuration Manager 2007 分发点中自动搜索源文件,即使最初不是从分发点安装了该应用程序。要启用 Windows Installer 源位置,您可以在 Configuration Manager 2007 包的程序属性上配置“Windows Installer”选项卡。

重要

Windows Installer 源位置管理器经过仔细设计,并针对多达 1000 个 Windows Installer 程序进行了测试。配置“Windows Installer”选项卡会增加所有客户端的策略大小。配置 1000 个以上的 Windows Installer 程序会降低客户端性能。

Windows Installer 源位置管理器解决的场景

问题场景 1:    用户从 CD 安装 Microsoft Office。用户选择“最低”安装,还不再保留原始安装 CD。首次使用语音工具时,Windows Installer 提示用户插入 Microsoft Office CD 以便它能够找到语音工具文件。用户不知道 Microsoft Office 文件的位置,因此无法完成语音工具安装。

问题场景 2:    用户从 CD 安装 Microsoft Office。Contoso 公司使用 Configuration Manager 2007 来管理它的 Office 安全更新。当 Windows Installer 尝试应用安全更新时,它需要原始 CD 中的文件。用户可能知道也可能不知道这些文件的位置,因此可能无法应用该安全更新。

问题场景 3:    使用网络共享作为 Windows Installer 产品的安装位置。在计算机从该共享安装了产品一段时间之后,宿主该共享的计算机被解除授权或失败,不再位于网络上。当 Windows Installer 尝试重新连接到该服务器时,它将失败,并向用户显示一个提示输入原始源文件位置的对话框。

定义

下列是 Windows Installer 源位置管理的相关术语。

  • Windows Installer
    指用于捆绑应用程序并提供简化和程序化安装体验的 Windows Installer 技术。
  • MSI
    Microsoft Installer 的缩写。其含义与 Windows Installer 相同。
  • 产品代码
    对每个 Windows Installer 捆绑应用程序分配的唯一标识符。
  • 包代码
    对每个 Windows Installer 捆绑应用程序分配的唯一标识符,通常表示对最初的 Windows Installer 捆绑应用程序做出了次要修订(例如对应用程序做出特定于语言的转换)。
  • .MSI 文件
    指扩展名与 Windows Installer 捆绑应用程序相关联的文件。
  • 产品源更新管理器
    在 Configuration Manager 2007 客户端上运行的代理,它更新 Windows Installer 可在其中找到源文件的网络位置的列表。

Windows Installer 交互

使用 Windows Installer 源位置管理时应该在 Configuration Manager 2007 和 Windows Installer 之间考虑的一些具体交互。

管理产品代码完全相同的产品

大多数基于 Windows Installer 的产品都对应用程序的每个版本使用不同的产品代码。在某些情况下,Windows Installer 应用程序捆绑可能具有完全相同的产品代码,但通过不同的包代码来区别版本。Microsoft Visio 2002 就是这样的一个例子。在本示例中,Visio 2002 Professional ENU 版本的最初发行版的产品代码是 {90510409-6D54-11D4-BEE3-00C04F990354}。SR1 版本产品代码也是 {90510409-6D54-11D4-BEE3-00C04F990354}。如果管理员为 Windows Installer 源位置管理配置了两个 Configuration Manager 2007 包(其中一个包含原始发行版本,而另一个包含 SR1 版本),则产品源更新管理器将在客户端上使用这两个产品的完整分发点列表来更新源位置列表(因为它们具有相同的产品代码)。Windows Installer 随后在尝试查找它的特定文件时将与合适的发行版匹配。

如果产品的版本不同,但产品代码完全相同,则应该使用 Configuration Manager 2007 来更新所有旧版本应用程序,然后再将 Windows Installer 产品代码添加到 Windows Installer 源位置管理的包。

源列表的注册表值

Windows Installer 将源目录列表作为它的数据库的一部分来维护。该信息随后将在注册表中提供。特定注册表配置单元和包含源列表的注册表项随安装期间选择的安装类型(受管理或不受管理)和关联特权(提升或非提升)的不同而改变。可在下列位置中找到大多数源列表:

HKEY_CLASSES_ROOT\Installer\Products\<产品代码>\SourceList\Net

HKEY_CURRENT_USER\Software\Microsoft\Installer\Products\<产品代码>\SourceList\Net

为所有用户安装应用程序

如果打算配置 Configuration Manager 2007 程序以通过使用“使用管理权限运行”选项在管理上下文中安装 Windows Installer 文件,请确保使用“每台计算机安装”选项,如 MSDN https://go.microsoft.com/fwlink/?LinkId=103664(页面可能为英文)上的 Windows Installer 文档中所述。否则,该应用程序将仅对本地系统用户运行。例如,如果 smstest.msi 是 Windows Installer 应用程序,则可使用下列命令行运行它:

msiexec /I smstest.msi ALLUSERS=2

删除现有网络源位置

产品源更新管理器将找到具有 Windows Installer 信息的 Configuration Manager 2007 程序的任何分发点,然后添加那些 Windows Installer 包的网络源路径。如果已存储了源位置(例如,从本地可用的服务器而不是 Configuration Manager 2007 分发点安装了该程序),则产品源更新管理器会将 Configuration Manager 2007 分发点位置附加到现有源位置。

要全面了解此功能及如何删除源位置,请考虑下列方案:

  1. 用户从 \\server1\share 启动(未使用 Configuration Manager 2007)Microsoft Office XP 安装。

  2. Windows Installer 将 \\server1\share 添加到最近使用的源注册表项,并将 \\server1\share 存储为安装源。

  3. 用户启动 Office 修复,此时 Windows Installer 将转到 \\server1\share 以获取源文件。

  4. Configuration Manager 管理员现在将 Office XP 添加到 Configuration Manager 2007,然后添加 PROPLUS.MSI 文件的 Windows Installer 信息。

  5. 客户端接收到更新,然后将 \\smsserver\dpshare 附加到 Office XP 的源列表。

  6. 网络管理员解除 \\server1 的授权。客户端计算机不能再访问 \\server1\share 文件夹。

  7. 要将安全更新应用到 Office XP,首先检查 \\server1\share,但找不到它。Windows Installer 滚动到下一位置,然后使用 \\smsserver\dpshare 完成更新过程;\\smsserver\dpshare 当前在最近使用的源注册表中列出,并成为正式的安装源。

  8. 任何后续安全更新或修复现在将从指向 Office XP \\smsserver\dpshare 的指针开始。

更新 Windows Installer 源位置管理器

在 Configuration Manager 2007 客户端上可能会发生若干将导致产品源更新管理器代理更新一个或多个 Windows Installer 产品的源位置的事件:

  • **管理点更改    **每当客户端的常驻或代理管理点更改时,将运行一个完整的 Windows Installer 源列表更新周期。

  • **网络更改    **如果客户端从一个网络子网切换到另一个网络子网,则将触发 Windows Installer 源列表更新周期。如果计算机上有多个网络接口(例如,一个扩展坞 NIC 和一个无线 PC 卡),那么当子网之一保持不变时,将不触发 Windows Installer 源列表更新周期。当计算机使用拨号连接到公司网络以及以虚拟专用网 (VPN) 方式连接到另一网络时,将导致网络更改。每当客户端的网络子网发生更改并且该客户端在该子网中持续存在八小时以上时,将运行一个完整的 Windows Installer 源列表更新周期。

  • **控制面板项目操作    **Configuration Manager 控制面板项目具有一个“Windows Installer 源列表更新周期”操作。选择此操作并单击“启动操作”按钮时将导致产品源更新管理器完成一个完整的更新周期。

  • **运行具有关联 Windows Installer 信息的程序    **如果在客户端上安装程序,并且为该程序存储 Windows Installer 信息(产品代码和文件名),则在安装程序后,产品源更新管理器将更新网络位置。每当使用 Configuration Manager 2007 安装单个 Windows Installer 应用程序时,将仅对该应用程序运行 Windows Installer 源列表更新周期。

  • **通过 API 进行程序化触发    **可使用 VBScript 来运行 Configuration Manager 2007 程序以启用 Windows Installer 源列表更新周期。

  • **用户登录/注销    **当用户登录计算机时,产品源更新管理器将为该登录用户更新按用户进行安装的 Windows Installer 产品的源路径。当用户注销时,将切换标记,表明对于任何正常更新周期触发,应该仅评估按计算机进行的安装。

另请参阅

任务

如何配置 Windows Installer 源更新管理

概念

产品源更新管理器的基于 API 的触发的脚本示例

有关其他信息,请参阅 Configuration Manager 2007 Information and Support
要与文档团队联系,请将电子邮件发送至 SMSdocs@microsoft.com。