Event ID 5973

Один из способов восстановления работоспособности Modern Apps на Windows 10

После одного из обновлений перестали запускаться некоторые 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