Event ID 5973

После одного из обновлений перестали запускаться некоторые Modern Apps. Т.е., совсем. Появляется контур окна, несколько секунд ожидания, все схлопывается.

В логах отображается событие:

Event ID 5973 Activation of app Microsoft.Windows.Photos_8wekyb3d8bbwe!App failed with error: The app didn't start in the required time. See the Microsoft-Windows-TWinUI/Operational log for additional information.

Судя по форумам, я такой не один, и однозначного решения нет. Идиотский совет Microsoft сделать переустановку или обновление поверх, а также создать новый аккаунт и, если там все будет запускать хорошо (т. е., может и не будет?), то мигрировать туда — всю эту бредятину сразу отбрасываем. Считаю, что это, вообще, издевательство такое советовать и мнение мое о Microsoft в целом и Windows в частности сильно пошатнулось.

Единственная полезная информация от Империи — расстановка прав на папки и ключи реестра для приложений

В моем случае, приложения запускались из другого аккаунта, поэтому вариант с неверными правами я сразу исключил.

Совет сделать проверку системных файлов SFC /SCANNOW лишен смысла. Приложения делятся на два типа: системные (System Apps) и приложения магазина (Windows Apps).

К системным относятся, например, Microsoft Edge Browser, Cortana, Start Menu. Они являются частью Windows и лежат в папке C:\Windows\SystemApps. В их случае SFC /SCANNOW может помочь устранить поврежденные файлы.

К Windows Apps относятся приложения, загружаемые из магазина (не суть, что некоторые уже предустановлены в Windows). Это Calculator, Weather, News, Sports, Windows Store, Phone, Messaging, People, Camera, Sound Recorder, Music, Video, Xbox, Maps, Alarms, Photos, Skype, Money, One Note и т. д. Путь к ним C:\Program Files\WindowsApps и C:\Users\*имя_профиля*\AppData\Local\Packages. В их случае использование SFC /SCANNOW бессмысленно.

Т.е., мой случай. Ищем решение дальше.

Следующее предлагаемое на форумах решение — выполнить перерегистрацию приложений. В PowerShell выполнить команду:

Add-AppxPackage -register "C:\Program Files\WindowsApps\*имя_приложегния*\AppxManifest.xml" -DisableDevelopmentMode

Имя приложения можно узнать из результатов команды

Get-AppXPackage *ключевое_слово_в_имени*

например, таким ключевым словом может быть calculator или photos (В английской версии эти слова совпадают с названиями приложений, в русской не знаю как).

Так, вызов 

Get-AppXPackage *photos*

покажет примерно такое имя:

Microsoft.Windows.Photos_16.325.12390.0_x86__8wekyb3d8bbwe

Его и нужно подстваить в команду перерегистрации.
Пакетно перерегистровать все можно командой

Get-AppXPackage | Foreach {Add-AppxPackage -DisableDevelopmentMode -Register "$($_.InstallLocation)\AppXManifest.xml -Verbose}"

Это позволит переустановить приложения для текущего пользователя. Для переустановки для всех пользователей нужно добавить ключ -AllUsers:

Get-AppXPackage -AllUsers | Foreach {Add-AppxPackage -DisableDevelopmentMode -Register "$($_.InstallLocation)\AppXManifest.xml -Verbose}"

В интернете нет единого мнения, нужно ли запускать консоль с правами администратора или от имени текущего пользователя. Похоже, что от имени текущего, потому что при запуске от админа мне удавалось завершить перерегистрацию, но приложение по прежнему не работало. Поэтому начиная с этого шага даем текущему аккаунту права администратора, тем более, они еще пригодятся дальше.

Итак, увы, но мне перерегистрация не помогла. Получаю ошибку:

Add-AppxPackage : Deployment failed with HRESULT: 0x80073CF6, Package could not be registered. (Exception from HRESULT: 0x80073CF6)
NOTE: For additional information, look for [ActivityId] f0edc05f-cbad-0001-dc1d-eef0adcbd101 in the Event Log or use the command line Get-AppxLog -ActivityID
f0edc05f-cbad-0001-dc1d-eef0adcbd101

Здесь есть подсказка. Чтобы посмотреть логи нужно ввести команду

Get-AppxLog -ActivityID f0edc05f-cbad-0001-dc1d-eef0adcbd101

После некоторого молчания она выведет много-много текста, нас интересует самый конец. Ищем там все, что касается ошибок. Например:

Windows cannot find the resource package manifest in the bundle file: C:\Program
Files\WindowsApps\Microsoft.Windows.Photos_16.325.12390.0_neutral_split.scale-100_8wekyb3d8bbwe\AppxManifest.xml.

Проверяем путь. Здесь первое препятствие. Права на папку C:\ProgramData\Microsoft\Windows\AppRepository\ принадлежат TrustedInstaller, поэтому сперва придется стать владельцем папки и субконтейнеров.

Теперь можно зайти внутрь и убедиться, что, таки да, папки Microsoft.Windows.Photos_16.325.12390.0_neutral_split.scale-100_8wekyb3d8bbwe нет, но есть Microsoft.Windows.Photos_16.325.12390.0_neutral_split.scale-125_8wekyb3d8bbwe

Причем, для более ранних версий приложения есть обе папки. Что это такое я не знаю, похоже на указание масштаба экрана, потому что у меня 125%.

Создаем папку с нужным именем, копируем туда содержимое имеющейся папки. Повторяем перерегистрацию. На этот раз она проходит успешно, приложение работает. После чего возвращаем права обратно - безопасность, все-таки.

Прим. Для системных приложений, например, Edge, перерегистрация выглядит так:

Add-AppxPackage -register "C:\Windows\SystemApps\Microsoft.MicrosoftEdge_8wekyb3d8bbwe\AppxManifest.xml" -DisableDevelopmentMode