发布日期:
2022 年 12 月 13 日注意:
-
本文于 2023 年 1 月 31 日修订,新增了其他解决方案。
-
本文于 2023 年 1 月 9 日修订,扩展了症状部分并添加了常见问题解答部分。
-
本文于 2022 年 12 月 15 日修订,新增了其他解决方案。
摘要
本文提供的帮助有助于解决以下问题:安装 2022 年 12 月 13 日的 .NET Framework 和 .NET 安全更新后,用户可能会遇到如何基于 WPF 的应用程序显示 XPS 文档的问题。
症状
使用表结构、情节提要或超链接等结构或语义元素的 XPS 文档可能无法在基于 WPF 的阅读器中正确显示。 此外,当 XPS 文档加载到基于 WPF 的阅读器中时,某些内联图像可能无法正确显示,或者可能发生空引用异常。
解决方法
Microsoft 确定了此问题的兼容性解决方法,并制作了一个 PowerShell 脚本来解决此问题。
若要安装兼容性解决方案,请按照下列步骤操作。
-
以管理员身份打开 PowerShell 提示符
-
在提示符中,导航到下载脚本的目录
-
在提示符内运行命令:.\kb5022083-compat.ps1 -Install
如果命令成功,控制台窗口将显示“安装完成”。 如果命令失败,将显示失败的原因。 要删除兼容性解决方法,请执行上述相同步骤,但将上面的步骤 (4) 替换为:.\kb5022083-compat.ps1 -Uninstall
安装兼容性解决方案后,显示 XPS 文档的基于 WPF 的应用程序应继续像 2022 年 12 月 13 日安全更新之前那样工作。
替代解决方案
如果第一个解决方案不能解决问题,您可以使用注册表项来禁用增强的安全行为。 此方法仅适用于您确定系统处理的所有 XPS 文档都是可信时,例如,它们是由您的系统生成的,而非上传到系统中的,并且任何人都不能更改它们。 如果您接受来自 Internet 的 XPS 文档、来自外部实体的电子邮件或其他不可信任的来源,请不要关闭该功能。
要禁用增强的安全行为,请从提升的命令提示符运行此命令:
reg add "HKLM\SOFTWARE\Microsoft\.NETFramework\Windows Presentation Foundation\XPSAllowedTypes" /v "DisableDec2022Patch" /t REG_SZ /d "*" /reg:64
或者,您可以使用“组策略”创建一个 REG_SZ 条目,其项名称为HKLM\SOFTWARE\Microsoft\.NETFramework\Windows Presentation Foundation\XPSAllowedTypes,值名称为DisableDec2022Patch,值为*
要删除此解决方案并返回增强的安全行为,请从提升的命令提示符下运行此命令: reg delete "HKLM\SOFTWARE\Microsoft\.NETFramework\Windows Presentation Foundation\XPSAllowedTypes" /reg:64 /f
这将禁用机器范围内的增强功能,并且仅当您可以完全信任系统中的所有 XPS 输入时才应使用。
解决方法
此问题已在 2023 年 1 月 31 日发布的带外更新中得到解决。 若要获取此带外更新的独立程序包,请在 Microsoft 更新目录中搜索 KB 编号。 您可以手动将这些更新导入 Windows Server Update Services (WSUS) 和 Microsoft Endpoint Configuration Manager。 有关 WSUS 说明,请参阅 WSUS 和目录站点。 有关 Configuration Manger 的说明,请参阅从 Microsoft 更新目录导入更新。
如果您为解决此问题使用了任何解决方案或缓解措施,则不需要再应用它们,我们建议您进行删除。 要删除解决方案,请查看适用于说明的解决方案或替代解决方案。
产品版本 |
更新 |
|
---|---|---|
Windows 11 version 22H2 |
||
.NET Framework 4.8.1 |
||
Windows 11 Version 21H2 |
||
.NET Framework 4.8 |
||
.NET Framework 4.8.1 |
||
Windows Server 2022 |
||
.NET Framework 4.8 |
||
.NET Framework 4.8.1 |
||
Azure Stack HCI Version 22H2 |
||
.NET Framework 4.8 |
||
Azure Stack HCI Version 21H2 |
||
.NET Framework 4.8 |
||
Windows 10 Version 22H2 |
||
.NET Framework 4.8 |
||
.NET Framework 4.8.1 |
||
Windows 10 Version 21H2 |
||
.NET Framework 4.8 |
||
.NET Framework 4.8.1 |
||
Windows 10 Version 20H2 |
||
.NET Framework 4.8 |
||
.NET Framework 4.8.1 |
||
Windows 10 1809(2018 年 10 月更新)和 Windows Server 2019 |
||
.NET Framework 4.7.2 |
||
.NET Framework 4.8 |
||
Windows 10 1607(周年更新)和 Windows Server 2016 |
||
.NET Framework 4.7.2 |
||
.NET Framework 4.8 |
受影响的更新
以下 .NET 版本受到影响:
-
安装 2022 年 12 月 13 日安全更新时的 .NET Framework 2.0、3.0、3.5、3.5.1。
-
安装 2022 年 12 月 13 日安全更新时的 .NET Framework 4.6.2、4.7、4.7.1、4.7.2。
-
安装 2022 年 12 月 13 日安全更新时的 .NET Framework 4.8。
-
安装 2022 年 12 月 13 日安全更新时的 .NET Framework 4.8.1。
-
包含 Windows Desktop 运行时版本 3.1.32 的 .NET Core 3.1。
-
包含 Windows Desktop 运行时版本 6.0.12 或更新的 .NET 6。
-
包含 Windows Desktop 运行时版本 7.0.1 或更新的 .NET 7。
Windows 操作系统中提供的 Windows XPS 查看器应用程序不受此问题的影响。
常见问题解答 (FAQ)
这种回归是什么时候引入的?
此回归是在 2022 年 12 月 13 日的 .NET 和 .NET Framework 累积安全更新中引入的。
如果管理员安装本文提供的 PowerShell 脚本,是否会使计算机容易受到攻击?
不需要。 PowerShell 脚本仅解决兼容性问题。 它不会禁用 2022 年 12 月 13 日的安全更新或以其他方式降低其有效性。
如果管理员使用基于注册表的替代解决方法,是否会使计算机容易受到攻击?
是的。 上面列出的替代解决方法禁用 2022 年 12 月 13 日安全修复程序的 WPF 部分。 如果管理员使用替代解决方法,他们应该告知用户不要在这些工作站上打开来自不受信任源的 XPS 文档。
本指南仅适用于加载 XPS 文档的基于 WPF 的应用程序。 用户可以继续使用 Windows 的内置 XPS 查看器应用程序来安全地查看不受信任的 XPS 文档,即使在使用基于注册表的备选解决方法的计算机上也是如此。
Microsoft 如何解决兼容性问题?
2023 年 1 月 31 日发布的带外更新中,某些版本的 .NET Framework 解决了此问题。 对于没有解决问题的 .NET Framework 版本,Microsoft 正在积极研究兼顾兼容性同时解决潜在安全问题的其他更新。
有关保护和安全的信息
-
保护自己的上网安全:Windows 安全支持
-
了解如何防范网络威胁:Microsoft 安全