用户帐户控制 (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 信息。