Have you been getting your first experiences with MSIX and have been doing some App-V before?
Then you will know that App-V has a cool trick where you can load any executable inside the App-V Bubble for troubleshooting with the command:
Wouldn’t it be great if there was something like that for MSIX?
Luckily there is a way to do that.
In this blog, I will show you a way and some tools how you can start programs inside your MSIX container to do some troubleshooting.
At the moment there is a problem in Windows that prevents the explorer.exe from being loaded into an MSIX container. Therefore, I use notepad.exe in the following examples. With notepad you can easily use the file open Window and change the filter to show you all files. Then you can at least browse the folder structure of your package to see what’s inside.
But to do that you need to enable Developer Mode on your machine. To enable it you need to open the settings app. Then go to “Updates & Security” and after that open “For developers”. Here you can enable “Developer mode”. To do that you need an admin account on your machine.
Some tools you need to start from a script or tool that gets executed as an Admin, otherwise, they can not be loaded inside a container. One of those examples is regedit.exe.
Once you have done that let’s get into the different ways you can use to open stuff inside your MSIX.
The PowerShell way
This command is fully documented here: https://docs.microsoft.com/en-us/powershell/module/appx/invoke-commandindesktoppackage?view=win10-ps The main syntax is the following:
An example for this would be:
Invoke-CommandInDesktopPackage -PackageFamilyName "YourPackageFamilyName" -command "ToolToStart" -AppId "TheAppIDFromTheManifest" -PreventBreakaway
But if you want an easier way and more comfort you can simply use this short script. It let’s you first choose the Application in who’s container you want to start something and then the tool you want to launch:
Invoke-CommandInDesktopPackage -PackageFamilyName "Microsoft-Edge_m83qt6s8gccza" -command "cmd.exe" -AppId "MSEDGE" -PreventBreakaway
#Select the Appx/MSIX you want to use $SelectedPackage = Get-AppxPackage |Select-Object -Property Name,Version,Publisher,InstallLocation | Out-GridView -Title "APPX/MSIX to use" -OutputMode Single #Select the tool you want to run inside the package container $Tool = @("cmd.exe";"regedit.exe";"notepad.exe") | Out-GridView -Title "Tool to start inside the package" -OutputMode Single #Get all the Data for the package $Package = Get-AppxPackage -Name $SelectedPackage.Name #Get the Manifest and from there the AppId $Manifest = Get-AppxPackageManifest -package $Package $AppId = $Manifest.package.Applications.Application.Id #Finaly start the selected tool inside the selected container Invoke-CommandInDesktopPackage -PackageFamilyName $Package.PackageFamilyName -PreventBreakaway -command $tool -AppId $AppId
I created a tool that can help you with a lot of tasks around MSIX. One of those functions is opening troubleshooting tools inside MSIX (APPX) Applications.
But the tool also lets you do more cool things. As an example, you can enable sideloading or developer mode.
You can download the latest version here:
Hover is a free tool that is brought to us by the makers of advanced installer. With hover you can start different troubleshooting tools inside your MSIX (APPX) or App-V Application.
You can search the application you want and then start different tools and even add your own exe files.
You can find the tool and additional information here:
I hope this information can help you with troubleshooting you’re MSIX Packages.