管理安装源

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

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

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

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

  • 为系统上的所有用户安装的应用程序和修补程序的源列表。
  • 除应用程序源之外存在的修补程序源的源列表。
  • 除了网络源之外存在的 URL 和媒体源的源列表。
  • 源列表属性,例如 MEDIAPACKAGEPATH、DiskPrompt、LastUsedSource、LastUsedType 和 PackageName。

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

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

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

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

备注

具有管理权限的用户和应用程序不能修改安装在其他用户的"每用户" (非托管) 的实例或修补程序的源列表。

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

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

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

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

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

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

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

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

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

检索和修改源列表信息

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

可以访问源列表属性,如 MEDIAPACKAGEPATH、DiskPrompt、LastUsedSource、LastUsedType 和 PackageName。

备注

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

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

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

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