KB5022083 Промяна в начина, по който базираните на WPF приложения рендират XPS документи

Забележка

Дата на издаване:
13 декември 2022 г.

Забележка

  • Тази статия беше редактирана на 19 май 2023 г., за да актуализира алтернативни ключове от системния регистър за заобиколно решение.
  • Тази статия беше редактирана на 17 февруари 2023 г. с цел актуализиране на резолюцията.
  • Тази статия беше коригирана на 31 януари 2023 г., за да се добави резолюция.
  • Тази статия беше коригирана на 9 януари 2023 г., за да разшири симптома и да добави раздела с често задавани въпроси.
  • Тази статия беше редактирана на 15 декември 2022 г., за да се добави допълнително заобиколно решение.

Резюме

Тази статия предоставя помощ за смекчаване на проблем, когато след инсталиране на актуализациите на защитата от 13 декември 2022 г. или на 14 февруари 2023 г. или актуализации от 19 януари 2023 г. за .NET Framework (платформа) и .NET, потребителите може да изпитат проблеми с начина, по който базираните на WPF приложения рендират XPS документи.

Симптом

XPS документи, които използват структурни или семантични елементи като структура на таблица, сторибордове или хипервръзки, може да не се показват правилно в базирани на WPF четци. Освен това някои вградени изображения може да не се показват правилно или може да възникнат изключения с нулева препратка, когато XPS документи се зареждат в WPF-базирани четци.

Заобиколно решение

Microsoft намери заобиколно решение за съвместимост за този проблем и създаде скрипт на PowerShell, за да разреши този проблем.

За да инсталирате заобиколното решение за съвместимост, следвайте стъпките по-долу.

  1. Изтегляне на скрипта на PowerShell
  2. Отваряне на подкана на PowerShell като администратор
  3. В подканата отидете до директорията, където е изтеглен скриптът
  4. Изпълнете командата в прозореца: .\kb5022083-compat.ps1 -Install

Ако командата е успешна, ще се отпечата "Инсталирането е завършено." в прозореца на конзолата. Ако командата е неуспешна, ще се покаже причината за неуспеха. За да премахнете заобиколното решение за съвместимост, изпълнете същите стъпки като по-горе, но заменете стъпка (4) по-горе с: .\kb5022083-compat.ps1 -Деинсталиране

След като бъде инсталирано заобиколното решение за съвместимост, базираните на WPF приложения, които показват XPS документи, трябва да продължат да работят, както и преди актуализациите на защитата от 13 декември 2022 г.

Алтернативно заобиколно решение

Ако първото заобиколно решение не реши проблема, можете да използвате запис в системния регистър, за да забраните поведението на повишена защита. Това трябва да се прави само ако със сигурност знаете, че всички XPS документи, които процесите на вашата система, са надеждни, например те са генерирани от вашата система, а не са качени в нея, и не могат да бъдат променяни от никого. Не изключвайте функционалността, ако приемате XPS документи от интернет, имейли от външни лица или други ненадеждни източници.

За да забраните поведението на повишена защита, изпълнете тази команда от команден прозорец с администраторски права:

  • reg add "HKLM\SOFTWARE\Microsoft\. NETFramework\Windows среда за представяния\XPSAllowedTypes" /v "DisableDec2022Patch" /t REG_SZ /d "*" /reg:64
  • reg add "HKLM\SOFTWARE\Wow6432Node\Microsoft\. NETFramework\Windows среда за представяния\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 среда за представяния\XPSAllowedTypes" /reg:64 /f
  • reg delete "HKLM\SOFTWARE\Wow6432Node\Microsoft\. NETFramework\Windows среда за представяния\XPSAllowedTypes" /reg:64 /f

Това забранява разширената функционалност на цялата машина и трябва да се използва само когато можете да се доверите напълно на всички въведени XPS елементи във вашите системи.

Решение

Този проблем е решен в актуализации извън обхвата, издадени на 31 януари 2023 г., за версии на Windows 10, версия 1607 и Windows Server 2016 и по-нови операционни системи и актуализации извън обхват, издадени на 17 февруари 2023 г. за по-ранни версии на Windows и Windows Server. За да получите самостоятелния пакет за тези актуализации извън обхвата, потърсете номера на БЗ в каталога на Microsoft Update. Можете ръчно да импортирате тези актуализации в Windows Server Update Services (WSUS) и Microsoft Endpoint Configuration Manager. За инструкции за WSUS вижте WSUS и каталога на сайта. За инструкции за Configuration Manager вижте Импортиране на актуализации от каталога на Microsoft Update.

Ако сте използвали заобиколно решение или смекчавания за този проблем, те вече не са необходими и ви препоръчваме да ги премахнете. За да премахнете заобиколно решение, прегледайте заобиколното решение или алтернативното заобиколно решение, което е приложено за инструкции.

Версия на продукт За актуализация
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 г.) и Windows Server 2019 Каталог 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, когато е инсталирана актуализацията на защитата от 13 декември 2022 г.
  • .NET Framework (платформа) 4.6.2, 4.7, 4.7.1, 4.7.2, когато е инсталирана актуализацията на защитата от 13 декември 2022 г.
  • .NET Framework (платформа) 4.8, когато е инсталирана актуализацията на защитата от 13 декември 2022 г.
  • .NET Framework (платформа) 4.8.1, когато е инсталирана актуализацията на защитата от 13 декември 2022 г.
  • .NET Core 3.1 с версия 3.1.32 на настолната версия на Windows.
  • .NET 6 с версия 6.0.12 на Windows Desktop или по-нова.
  • .NET 7 с версия 7.0.1 или по-нова версия на настолната версия на Windows.

Приложението Windows XPS Viewer, предоставено в рамките на операционната система Windows, не е засегнато от този проблем.

Често задавани въпроси (ЧЗВ)

Кога е въведена тази регресия?

Това регресия беше въведена в кумулативните актуализации на защитата от 13 декември 2022 г. за .NET и .NET Framework (платформа).

Ако администратор инсталира скрипта на PowerShell, описан в тази статия, ще остави ли машината уязвима?

Не. Скриптът на PowerShell адресира само съвместимостта. Това не забранява актуализацията на защитата от 13 декември 2022 г. и по друг начин не намалява нейната ефективност.

Ако администратор използва базираното на системния регистър алтернативно заобиколно решение, ще остави ли машината уязвима?

Да. Алтернативното заобиколно решение, посочено по-горе, забранява частта WPF от корекцията на защитата от 13 декември 2022 г. Ако администратор използва алтернативното заобиколно решение, той трябва да насочи потребителите си да не отварят XPS документи от ненадеждни източници на тези работни станции.

Това ръководство се отнася само за приложения, базирани на WPF, които зареждат XPS документи. Потребителите могат да продължат да използват вграденото приложение XPS визуализатор на Windows, за да преглеждат безопасно ненадеждни XPS документи, дори на машини, които използват алтернативното заобиколно решение, базирано на системния регистър.

Какво прави Microsoft, за да адресира проблема със съвместимостта?

Този проблем е обърнато внимание за някои версии на .NET Framework (платформа) в актуализации извън обхвата, издадени на 31 януари 2023 г. За версии на .NET Framework (платформа), които не са разгледани, Microsoft активно проучва допълнителна актуализация, която възстановява съвместимостта, като същевременно решава основния проблем със защитата.

Информация за защитата и сигурност