KB5022083 WPF 應用程式轉譯 XPS 文件的方式有所變更

注意

發行日期:
2022 年 12 月 13 日

注意

  • 本文於 2023 年 5 月 19 日修訂,以更新替代的因應措施登錄機碼。
  • 本文於 2023 年 2 月 17 日修訂,以更新解決方案。
  • 本文於 2023 年 1 月 31 日修訂,以新增其他的因應措施
  • 本文於 2023 年 1 月 9 日修訂,以擴展徵狀並新增常見問題集部分。
  • 本文於 2022 年 12 月 15 日修訂,以新增其他的因應措施。

摘要

本文提供的說明可降低下列問題的風險:安裝 2022 年 12 月 13 日或 2023 年 2 月 14 日的安全性更新或 2023 年 1 月 19 日的 .NET Framework 和 .NET 更新後,使用者可能會遇到與 WPF 應用程式的 XPS 文件轉譯方式相關的問題。

徵兆

使用表結構、故事板或超連結等結構或語義元素的 XPS 文檔,可能無法在基於 WPF 的閱讀器中正確顯示。 此外,當 XPS 文件載入到 WPF 型的閱讀器中時,某些內嵌映像可能無法正確顯示,或可能發生 Null 參考例外狀況。

因應措施

Microsoft 確定了此問題的相容性解決方法,並製作了一個 PowerShell 指令碼來解決此問題。

若要安裝相容性因應措施,請遵循下列步驟。

  1. 下載 PowerShell 指令碼
  2. 以系統管理員身分開啟「PowerShell 提示字元」視窗
  3. 在提示中,導覽至下載指令碼的目錄
  4. 在提示下執行指令: .\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 Update Catalog 中搜尋 KB 編號。 您可以手動將這些更新匯入 Windows Server Update Services (WSUS) 和 Microsoft Endpoint Configuration Manager。 如需 WSUS 指示,請參閱 WSUS 和目錄網站。 如需設定管理員指示,請參閱 從 Microsoft Update Catalog 匯入更新

如果您已使用此問題的任何解決方法或緩和措施,則不再需要它們,建議您將它們移除。 若要移除因應措施,請檢閱針對指示套用的因應措施或替代因應措施。

產品版本 更新 知識庫文件
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 版本受到影響:

  • .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,安裝 2022 年 12 月 13 日安全更新時。
  • Windows 桌面執行階段版本 3.1.32 的 .NET Core 3.1。
  • Windows 桌面執行階段版本 6.0.12 或更新版本的 .NET 6。
  • Windows 桌面執行階段版本 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 正在積極研究可還原相容性,同時也能解決基礎安全性問題的其他更新。

有關保護和安全性的資訊