管理安装源

具有管理权限的用户和应用程序可以检索和修改系统上Windows安装程序应用程序和修补程序的网络、URL 和媒体源列表信息。

Windows Installer 2.0:不支持。 管理员无法读取、重新排序或替换源列表中的条目,并且无法修改或检索源列表属性。 可以管理网络源,但不能管理 URL 或媒体源。 管理员只能为当前用户按用户安装的每台计算机应用程序或应用程序管理源列表。 这样可以防止管理员使用早于 Windows Installer 版本 3.0 的版本管理系统中所有用户的源列表信息。

Windows Installer 3.0 及更高版本:具有管理员权限的用户和应用程序可以检索和修改安装在系统上的 Windows Installer 应用程序和修补程序的源列表信息。 源列表函数可用于管理网络、URL 和媒体源的源列表和源列表属性。 安装程序可以从外部进程重新排序源列表。

具有管理权限的用户和应用程序可以读取和修改以下类型的源列表信息:

  • 系统上所有用户安装的应用程序和修补程序的源列表。
  • 除应用程序源外存在的修补程序源的源列表。
  • 除网络源外存在的 URL 和媒体源的源列表。
  • 源列表属性,如 MEDIAPACKAGEPATHDiskPromptLastUsedSource、LastUsedTypePackageName

源列表函数可以通过指定安装上下文和用户上下文来限制找到的源列表的范围。 有三种可能的安装上下文:每用户 (非托管) 、每台计算机和每用户托管。 用户上下文可以是特定用户,也可以是系统上的所有用户。

非管理员无法修改其他用户 (托管或非托管) 上下文下存在的应用程序实例或修补程序的源列表。 非管理员可以修改在以下上下文下安装的应用程序实例或修补程序的源列表:

管理员可以修改非管理员可修改的任何源列表。 此外,具有管理权限的管理员和应用程序可以修改在以下上下文下安装的应用程序或修补程序的源列表:

  • 每台计算机上下文。
  • 他们自己的每用户 (非托管) 或自己的每用户托管上下文。
  • 其他用户的按用户托管上下文。

注意

具有管理权限的用户和应用程序无法修改在其他用户 (非托管) 上下文中安装的应用程序实例或修补程序的源列表。

 

管理产品和修补程序的网络和 URL 源

使用 MsiSourceListAddSourceEx 函数在特定上下文中为修补程序或应用程序添加或重新排序网络和 URL 源的源列表。 使用 dwContext 参数指定安装上下文。 使用 szUserSid 参数指定用户上下文。

使用 MsiSourceListAddSourceEx 函数为尚未应用于指定上下文中的任何应用程序的修补程序创建源列表。 注册修补程序以拥有提升的权限时,这非常有用。 有关注册修补程序提升的权限的详细信息,请参阅 修补Per-User托管应用程序

使用 MsiSourceListClearSource 函数删除指定上下文中的应用程序或修补程序的现有源。 删除应用程序的当前源或修补程序会强制安装程序下次需要源时搜索源列表。

使用 MsiSourceListEnumSources 函数枚举指定修补程序或应用程序的源列表中的源。

管理产品和修补程序的媒体源

使用 MsiSourceListAddMediaDisk 函数添加或更新已注册应用程序或修补程序的媒体源的磁盘信息。 每个条目由磁盘 ID 唯一标识。 如果磁盘已存在,则会使用新的卷标签和磁盘提示值进行更新。 如果磁盘不存在,则会使用新值创建新的磁盘条目。

使用 MsiSourceListClearMediaDisk 函数可删除特定上下文中应用程序或修补程序媒体源下的现有已注册磁盘。

使用 MsiSourceListEnumMediaDisks 函数枚举应用程序或修补程序媒体源下注册的磁盘列表。

检索和修改源列表信息

使用 MsiSourceListGetInfoMsiSourceListSetInfo 函数检索或修改特定上下文中应用程序或修补程序的源列表的相关信息。 使用 dwContext 参数指定安装上下文。 使用 szUserSid 参数指定用户上下文。

可以访问 MEDIAPACKAGEPATHDiskPromptLastUsedSource、LastUsedTypePackageName 等源列表属性。

注意

LastUsedType 源列表属性只能读取。 不能使用 MsiSourceListSetInfo 函数直接设置它。

 

清除完整的源列表或强制进行源解析

使用 MsiSourceListClearAllEx 函数删除指定应用程序或修补程序实例给定源类型的所有现有源。 如果修补程序未由同一上下文中的任何应用程序安装,也会删除修补程序注册。 使用 dwContext 参数指定安装上下文。 使用 szUserSid 参数指定用户上下文。

使用 MsiSourceListForceResolutionEx 清除指定上下文中应用程序或修补程序的最后使用源条目。 此函数删除名为 LastUsedSource 的属性的注册。 此函数不会影响已注册的源列表。 清除 LastUsedSource 注册会强制安装程序在下一次需要源时针对已注册源执行源解析。