用户帐户控制 (UAC) 修补

用户帐户控制 (UAC) 修补程序使 Windows Installer 安装作者能够识别非管理员用户将来可应用的数字签名修补程序。

如果数字签名与证书不匹配,则 Windows Vista 会在安装修补程序之前显示一个请求管理员授权的 UAC 对话框。 在 Windows Vista 以前的系统上,安装程序不会应用与证书不匹配的已签名修补程序。

如果非管理员尝试将修补程序应用于应用程序,并且不满足以下条件,则 Windows Vista 将通知用户在安装修补程序之前需要获得管理员授权。 如果满足以下条件,则非管理员可以继续安装修补程序,而无需获得额外的管理员授权。

  • 该应用程序是使用 Windows Installer 3.0 或更高版本在 Windows Vista 或 Windows XP 上安装的。

    Windows Server 2008:不支持。

  • 如果该应用程序安装在 Windows XP 上,则它还必须是从可移动媒体(例如 CD-ROM 或 DVD 光盘)安装的。 如果该应用程序安装在 Windows Vista 上,则此限制不适用。

  • 该应用程序不是从管理安装源映像安装的。

  • 该应用程序最初是按计算机安装的。 有关如何使非管理员能够在修补程序被管理员认定为受信任后,将其应用于每用户托管应用程序的信息,请参阅修补每用户托管应用程序

  • MsiPatchCertificate 表在 Window Installer 包(.msi 文件)中提供,包含启用 UAC 所需的信息。 该表和信息可能已包含在原始安装包中,或已通过 Windows Installer 修补程序文件(.msp 文件)添加到包中。

  • 这些修补程序已通过 MsiPatchCertificate 表中列出的证书进行数字签名。 有关数字签名证书的详细信息,请参阅数字签名和 Windows Installer

  • 可以对照 MsiPatchCertificate 表中的证书验证修补程序包中的数字签名。 有关使用数字签名、数字证书和 WinVerifyTrust 的详细信息,请参阅 Microsoft Windows 软件开发工具包 (SDK) 的安全性部分。

  • 用于验证修补程序包中的数字签名的签名者证书有效且未被吊销。

    注意

    尽管无法使用已过期的证书来为修补程序签名,但如果证书已过期,修补程序中的数字签名评估却不会失败。 评估将使用当前的 MsiPatchCertificate 表,其中包含原始包中的 MsiPatchCertificate 表,以及排序在当前修补程序之前的修补程序对该表所做的任何更改。 修补程序可以将新证书添加到 MsiPatchCertificate 表,以评估排序在当前修补程序之后的修补程序。 始终会拒绝已吊销的证书。

     

  • 未通过设置 MSIDISABLELUAPATCHING 属性或 DisableLUAPatching 策略禁用最低权限修补。

非管理员也可以删除通过 UAC 修补应用的修补程序。

无论应用程序的 UAC 设置如何,管理员都可以将修补程序应用于按计算机安装的产品。

可以通过使用 MsiGetProductInfoEx 函数查询 INSTALLPROPERTY_AUTHORIZED_LUA_APP 属性,或使用 ProductInfo 方法查询“AuthorizedLUAApp”属性,来确定是否为应用程序启用了最低权限修补。 如果任一属性的值为 1,则表示已为应用程序启用了最低权限用户帐户修补。

管理员可以通过将 DisableLUAPatching 策略设置为 1 在计算机上禁用最低权限修补。 可以在初始安装应用程序期间将 MSIDISABLELUAPATCHING 属性设置为 1,以防止仅为该应用程序启用最低权限修补。

此功能从 Windows Installer 版本 3.0 开始提供。 用户帐户控制 (UAC) 修补在 Windows XP 中称为最低权限用户帐户 (LUA) 修补。 LUA 修补在 Windows 2000 和 Windows Server 2003 上不可用。

有关应用程序兼容性和开发与用户帐户控制 (UAC) 兼容的应用程序的详细信息,请参阅 Microsoft Technet 上提供的 UAC 信息。