注意
发布日期:
2022 年 12 月 13 日
注意
- 本文于 2023 年 5 月 19 日修订,以更新替代解决方法注册表项。
- 本文于 2023 年 2 月 17 日修订,以更新解决方案。
- 本文于 2023 年 1 月 31 日修订,新增了其他解决方案。
- 本文于 2023 年 1 月 9 日修订,扩展了症状部分并添加了常见问题解答部分。
- 本文于 2022 年 12 月 15 日修订,新增了其他解决方案。
摘要
本文提供的帮助有助于解决以下问题:在安装 2022 年 12 月 13 日或 2023 年 2 月 14 日的 .NET Framework 和 .NET 更新或 2023 年 1 月 19 日更新后,用户可能会遇到如何基于 WPF 的应用程序显示 XPS 文档的问题。
问题
使用表结构、情节提要或超链接等结构或语义元素的 XPS 文档可能无法在基于 WPF 的阅读器中正确显示。 此外,当 XPS 文档加载到基于 WPF 的阅读器中时,某些内联图像可能无法正确显示,或者可能发生空引用异常。
解决方法
Microsoft 确定了此问题的兼容性解决方法,并制作了一个 PowerShell 脚本来解决此问题。
要安装兼容性解决方法,请按照以下步骤操作。
- 下载 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 add “HKLM\SOFTWARE\Wow6432Node\Microsoft\.NETFramework\Windows Presentation Foundation\XPSAllowedTypes“ /v ”DisableDec2022Patch“ /t REG_SZ /d ”*“ /reg:64
或者,可以使用 组策略 创建一个键名称为 、值名称HKLM\SOFTWARE\Microsoft\.NETFramework\Windows Presentation Foundation\XPSAllowedTypes为 、值为 DisableDec2022Patch、值为 的REG_SZ条目*
若要删除上述任一解决方法并返回增强的安全行为,请从提升的命令提示符 () 运行以下命令 () :
- reg delete “HKLM\SOFTWARE\Microsoft\.NETFramework\Windows Presentation Foundation\XPSAllowedTypes“ /reg:64 /f
- reg delete “HKLM\SOFTWARE\Wow6432Node\Microsoft\.NETFramework\Windows Presentation Foundation\XPSAllowedTypes“ /reg:64 /f
这将禁用机器范围内的增强功能,并且仅当您可以完全信任系统中的所有 XPS 输入时才应使用。
解决方案
此问题已在 2023 年 1 月 31 日发布的带外更新(适用于 Windows 10 版本 1607 和 Windows Server 2016 版本以及较新的操作系统)以及 2023 年 2 月 17 日发布的带外更新(适用于早期 Windows 和 Windows Server 版本)中得到解决。 若要获取这些带外更新的独立包,请在 Microsoft 更新目录中搜索 KB 编号。 可以手动将这些更新导入到 Windows Server Update Services (WSUS) 和 Microsoft Endpoint Configuration Manager。 有关 WSUS 说明,请参阅 WSUS 和目录站点。 有关配置管理器说明,请参阅 从 Microsoft 更新目录导入更新。
如果对此问题使用了任何解决方法或缓解措施,则你不再需要它们,建议将它们删除。 要删除解决方法,请查看已针对说明应用的解决方法或备用解决方法。
| 产品版本 | 更新 | 知识库文章 |
|---|---|---|
| Windows 11 版本 22H2 | ||
| .NET Framework 4.8.1 | 目录 | 5023327 |
| Windows 11 版本 21H2 | 目录 | 5023367 |
| .NET Framework 4.8 | 目录 | 5023323 |
| .NET Framework 4.8.1 | 目录 | 5023320 |
| Windows Server 2022 | 目录 | 5023368 |
| .NET Framework 4.8 | 目录 | 5023324 |
| .NET Framework 4.8.1 | 目录 | 5023321 |
| Azure Stack HCI 版本 22H2 | ||
| .NET Framework 4.8 | 目录 | 5023324 |
| Azure Stack HCI 版本 21H2 | ||
| .NET Framework 4.8 | 目录 | 5023324 |
| Windows 10 版本 22H2 | 目录 | 5023366 |
| .NET Framework 4.8 | 目录 | 5023322 |
| .NET Framework 4.8.1 | 目录 | 5023319 |
| Windows 10 版本 21H2 | 目录 | 5023365 |
| .NET Framework 4.8 | 目录 | 5023322 |
| .NET Framework 4.8.1 | 目录 | 5023319 |
| Windows 10 版本 20H2 | 目录 | 5023364 |
| .NET Framework 4.8 | 目录 | 5023322 |
| .NET Framework 4.8.1 | 目录 | 5023319 |
| Windows 10 1809 (2018 年 10 月更新) 和 2019 Windows Server | 目录 | 5023363 |
| .NET Framework 4.7.2 | 目录 | 5023333 |
| .NET Framework 4.8 | 目录 | 5023326 |
| Windows 10 1607 (周年更新) 和Windows Server 2016 | 目录 | 5023416 |
| .NET Framework 4.7.2 | 目录 | 5023332 |
| .NET Framework 4.8 | 目录 | 5023325 |
| Windows Embedded 8.1 和 Windows Server 2012 R2 | ||
| .NET Framework 4.6.2、4.7、4.7.1、4.7.2 | 目录 | 5023819 |
| .NET Framework 4.8 | 目录 | 5023822 |
| Windows Embedded 8 和 Windows Server 2012 | ||
| .NET Framework 4.6.2、4.7、4.7.1、4.7.2 | 目录 | 5023818 |
| .NET Framework 4.8 | 目录 | 5023821 |
| Windows Embedded 7 Standard 和 Windows Server 2008 R2 SP1 | ||
| .NET Framework 4.6.2、4.7、4.7.1、4.7.2 | 目录 | 5023820 |
| .NET Framework 4.8 | 目录 | 5023823 |
| Windows Server 2008 SP2 | ||
| .NET Framework 4.6.2 | 目录 | 5023820 |
受影响的更新
以下 .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 安全