Поделиться через


Устранение неполадок среды выполнения в контейнере MSIX

В этой статье мы рассмотрим, как устранить неполадки среды выполнения в контейнере MSIX. Сами по себе контейнеры MSIX являются относительно простыми и понятными. По мере того как всё больше приложений выполняется внутри того же удостоверения пакета с помощью пакетов модификаций, виртуальный реестр и виртуальная файловая система будут накладываться в том порядке, в каком установлены приложения.

Порядок установки этих приложений может, например, привести к непредвиденным проблемам, когда предполагаемые разделы реестра перезаписываются, а файлы заменяются.

Чтобы помочь в диагностике таких проблем, Invoke-CommandInDesktopPackage — это командлет PowerShell, который можно использовать для запуска приложения в контейнере MSIX. Это позволяет пользователям запускать командную строку, редактор реестра, PowerShell в контейнере MSIX и просматривать объединенную файловую систему и объединенный куст реестра.

Это важно

Invoke-CommandInDesktopPackage требует, чтобы устройство было в режиме разработчика для сборок Windows 10 до 18922 года.

Просмотр объединенной файловой системы

Чтобы просмотреть файловую систему, наблюдаемую приложениями, работающими в контейнере, используйте следующую команду PowerShell:

Invoke-CommandInDesktopPackage -AppId "AppPackage1" -PackageFamilyName "Contoso.AppPackage1_8h66172c634n0" -Command "cmd.exe" -PreventBreakaway

Приведенная выше команда запустит экземпляр cmd.exe в контейнере пакета Contoso.AppPackage1_8h66172c634n0 . При выполнении командной строки из контейнера можно просматривать файловую систему и просматривать объединенные файлы.

Просмотр объединенного hive реестра

Чтобы просмотреть полный раздел реестра устройств, как это видят приложения, работающие внутри контейнера, используйте следующую команду PowerShell:

Invoke-CommandInDesktopPackage -AppId "AppPackage1" -PackageFamilyName "Contoso.AppPackage1_8h66172c634n0" -Command "regedit.exe" -PreventBreakaway

Приведенная выше команда запустит редактор реестра в контексте контейнера пакета Contoso.AppPackage1_8h66172c634n0 . Здесь можно просмотреть локальные компьютеры и текущие разделы реестра пользователей и определить возможных правонарушителей, вызывающих проблему.

Подсказка

Используйте флаг "-PreventBreakaway" при использовании Invoke-CommandInDesktopPackage, если вы хотите запустить последующие процессы в том же контейнере. В противном случае, любой последующий запуск выйдет за пределы контейнера.

Замечание

Не все приложения можно запустить в контейнере. Например, explorer.exe выйдет за пределы контейнера.