Solución de problemas en tiempo de ejecución en un contenedor MSIX

En este artículo, revisaremos cómo puede solucionar problemas en tiempo de ejecución que se producen en un contenedor MSIX. Los contenedores MSIX por sí mismos son relativamente simples y sencillos. A medida que se ejecutan más aplicaciones dentro de la misma identidad de paquete con la ayuda de los paquetes de modificación, el registro virtual y el sistema de archivos virtuales se sobreponerán en el orden en que se instalan las aplicaciones.

Puede haber casos en los que el orden en el que se instalan estas aplicaciones podría provocar problemas imprevistos en los que se podrían sobrescribir las claves del Registro esperadas y se podrían reemplazar los archivos esperados.

Para ayudar a diagnosticar estos problemas, Invoke-CommandInDesktopPackage es un cmdlet de PowerShell que se puede usar para ejecutar una aplicación dentro del contenedor MSIX. Esto permite a los usuarios ejecutar el símbolo del sistema, el editor del Registro, PowerShell dentro del contenedor MSIX y obtener una vista del sistema de archivos combinado y el subárbol del Registro combinado.

Importante

Invoke-CommandInDesktopPackage requiere que el dispositivo esté en modo desarrollador para las compilaciones de Windows 10 anteriores a 18922.

Visualización del sistema de archivos combinado

Para ver el sistema de archivos tal como lo observan las aplicaciones que se ejecutan dentro del contenedor, use el siguiente comando de PowerShell:

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

El comando anterior iniciará una instancia de cmd.exe en el contenedor de paquetes de Contoso.AppPackage1_8h66172c634n0 . A medida que ejecuta el símbolo del sistema desde dentro del contenedor, puede examinar el sistema de archivos y ver los archivos combinados.

Visualización del subárbol del Registro combinado

Para ver el subárbol completo del registro de dispositivos tal como lo observan las aplicaciones que ejecutan insider en el contenedor, use el siguiente comando de PowerShell:

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

El comando anterior iniciará el editor del Registro en el contexto del contenedor de paquetes de Contoso.AppPackage1_8h66172c634n0 . Aquí puede examinar la máquina local y las claves del Registro de usuario actuales e identificar posibles delincuentes que están causando el problema.

Sugerencia

Use la marca "-PreventBreakaway" al usar Invoke-CommandInDesktopPackage si desea iniciar procesos posteriores en el mismo contenedor. De lo contrario, cualquier inicio posterior se interrumpirá en el contenedor.

Nota

No todas las aplicaciones se pueden iniciar dentro del contenedor. Por ejemplo, explorer.exe se interrumpirá el contenedor.