SkillAgentSearch skills...

AppxUtilities

Fill in functionality gaps for Windows Store packages and processes utlities

Install / Use

/learn @david-risney/AppxUtilities
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

AppxUtilities

Fill in functionality gaps for Windows Store AppX package PowerShell commands.

Install

  • Extract the contents of AppxUtilties.zip into a temporary directory.
  • Open a new PowerShell prompt, cd to the temporary directory, and run Unblock-File *.
  • Move the files to somewhere in your PATH.

Or try the new remote install script from a PowerShell prompt. It will install or update the tools in ~\bin and add that path to your user PATH.

(new-object Net.WebClient).DownloadString("https://david-risney.github.io/AppxUtilities/install.ps1") | iex

Commands

AppxUtilities provides the following commands:

  • Process package info Get-ProcessAppxPackage wwahost
  • Appx file to package info dir *appx | Get-AppxPackageFile
  • Launch an app from a package info Get-AppxPackageExt *Skype* | Launch-AppxPackage
  • Debug a package Get-AppxPackageExt *Cloud* | Debug-AppxPackage -OnLaunch "C:\debuggers\windbg.exe"
  • Get more package info Get-AppxPackageExt.ps1
  • Add appx package with force override and resulting package info Add-AppxPackageExt.ps1 *appx -Force
  • Launch a background task for an appx package Get-AppxPackageExt *Skype* | Launch-AppxPackageBackgroundTask
  • Suspend a running appx package process Get-AppxPackageExt *Skype* | Suspend-AppxPackage
  • Resume a running appx package process Get-ProcessAppxPackage *Skype* | Resume-AppxPackage
  • Terminate a running appx package process Get-ProcessAppxPackage *Skype* | Terminate-AppxPackage

Add-AppxPackageExt.ps1 - Install Appx packages.

A wrapper for Add-AppxPackage, this script additionally supports a Force switch that will install the package even when a package with the same package full name is already installed or if the package to install has an untrusted signature. Additionally it has as its output the Get-AppxPackageExt results of the installed packages.

Example:

PS C:\Users\Dave> Add-AppxPackageExt .\BackgroundTask2.appx

Add-AppxPackage : Deployment failed with HRESULT: 0x80073CFB, The provided package is already installed, and
reinstallation of the package was blocked. Check the AppXDeployment-Server event log for details.
Deployment of package Microsoft.SDKSamples.BackgroundTask.JS_1.0.0.0_neutral__8wekyb3d8bbwe was blocked because the
provided package has the same identity as an already-installed package but the contents are different. Increment the
version number of the package to be installed, or remove the old package for every user on the system before
installing this package.
NOTE: For additional information, look for [ActivityId] 765451bb-88b0-0001-8afa-5876b088cf01 in the Event Log or use
the command line Get-AppxLog -ActivityID 765451bb-88b0-0001-8afa-5876b088cf01
At C:\users\dave\bin\Add-AppxPackageExt.ps1:22 char:16
+     $lastError = (Add-AppxPackage $Path 2>&1);
+                   ~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo          : ResourceExists: (C:\Users\Dave\BackgroundTask2.appx:String) [Add-AppxPackage], PSInvalid 
    OperationException
+ FullyQualifiedErrorId : DeploymentError,Microsoft.Windows.Appx.PackageManager.Commands.AddAppxPackageCommand

PS C:\Users\Dave> Add-AppxPackageExt .\BackgroundTask2.appx -Force


PackageFullName     : Microsoft.SDKSamples.BackgroundTask.JS_1.0.0.0_neutral__8wekyb3d8bbwe
DisplayName         : BackgroundTask JS sample
InstallLocationItem : C:\Program
                      Files\WindowsApps\Microsoft.SDKSamples.BackgroundTask.JS_1.0.0.0_neutral__8wekyb3d8bbwe
Manifest            : #document
ApplicationIds      : {App}
BackgroundTasks     : {}
InstallTimeUtc      : 6/26/2014 3:14:11 PM

Debug-AppxPackage.ps1 - Debug appx packages.

A wrapper for plmdebug.exe, this script makes it easy to use plmdebug.exe in PowerShell with other AppxPackage commands. Returns the Get-AppxPackageExt results of the packages to which this command applied.

Example:

PS C:\Users\Dave> Get-AppxPackageExt *BackgroundTask* | Debug-AppxPackage -OnLaunch "C:\debuggers\windbg.exe -server tcp:port=9100"

PackageFullName     : Microsoft.SDKSamples.BackgroundTask.JS_1.0.0.0_neutral__8wekyb3d8bbwe
DisplayName         : BackgroundTask JS sample
InstallLocationItem : C:\Program
                      Files\WindowsApps\Microsoft.SDKSamples.BackgroundTask.JS_1.0.0.0_neutral__8wekyb3d8bbwe
Manifest            : #document
ApplicationIds      : {App}
BackgroundTasks     : {}
InstallTimeUtc      : 6/26/2014 3:14:11 PM

# Attach a debugger to a package the next time it is run using Debug-AppxPackage.

Example:

PS C:\Users\Dave> Get-ProcessAppxPackage *backgroundtask* | Debug-AppxPackage.ps1 -On C:\debuggers\windbg.exe

PackageFullName     : Microsoft.SDKSamples.BackgroundTask.JS_1.0.0.0_neutral__8wekyb3d8bbwe
DisplayName         : BackgroundTask JS sample
InstallLocationItem : C:\Program
                      Files\WindowsApps\Microsoft.SDKSamples.BackgroundTask.JS_1.0.0.0_neutral__8wekyb3d8bbwe
Manifest            : #document
ApplicationIds      : {App}
BackgroundTasks     : {}
InstallTimeUtc      : 6/26/2014 3:14:11 PM

# Attach a debugger to a currently running package

Example:

PS C:\Users\Dave> Get-AppxPackageExt *backgroundtask* | Debug-AppxPackage.ps1 -Off

PackageFullName     : Microsoft.SDKSamples.BackgroundTask.JS_1.0.0.0_neutral__8wekyb3d8bbwe
DisplayName         : BackgroundTask JS sample
InstallLocationItem : C:\Program
                      Files\WindowsApps\Microsoft.SDKSamples.BackgroundTask.JS_1.0.0.0_neutral__8wekyb3d8bbwe
Manifest            : #document
ApplicationIds      : {App}
BackgroundTasks     : {}
InstallTimeUtc      : 6/26/2014 3:14:11 PM

# Turn off debugging a package.

Get-AppxPackageExt.ps1 - Get installed Appx package information.

A wrapper for Get-AppxPackage, this script provides additional info beyond Get-AppxPackage's including:

  • DisplayName
  • Manifest parsed as XML
  • InstallLocation as file item
  • Application IDs
  • Registered background tasks

Example:

PS C:\Users\Dave> Get-AppxPackageExt.ps1 *Skype*

PackageFullName     : Microsoft.SkypeApp_2.8.0.1001_x86__kzf8qxf38zg5c
DisplayName         : Skype
InstallLocationItem : C:\Program Files\WindowsApps\Microsoft.SkypeApp_2.8.0.1001_x86__kzf8qxf38zg5c
Manifest            : #document
ApplicationIds      : {App}
BackgroundTasks     : {@{Name=userAccountStateChangedBackgroundTask; Id={516560FE-4EEE-4FDE-9017-7B7742D656C4}},
                      @{Name=keepAliveTimerTriggerBackgroundTask; Id={47B17C4A-0953-416A-8EF0-EDFF9415E080}},
                      @{Name=refreshChannelUriBackgroundTask; Id={BC523B83-5B2F-4F37-972C-50877A49DE7A}}}
InstallTimeUtc      : 5/7/2014 10:14:32 AM

Get-AppxPackageFile.ps1 - Get Appx package info from an Appx package file.

Given an Appx package file, Get-AppxPackageFile extracts the manifest from the file (using ExtractFromAppx.exe) and outputs the results of Get-AppxPackageExt filtered to packages with the same name as that in the manifest, or if none exist outputs information from the manifest.

Example:

PS C:\Users\Dave> Get-AppxPackageFile.ps1 .\BackgroundTask.Windows_1.0.0.0_AnyCPU_Debug.appx

Name                  : Microsoft.SDKSamples.BackgroundTask.JS
DisplayName           : BackgroundTask JS sample
Version               : 1.0.0.0
Publisher             : CN=Microsoft Corporation, O=Microsoft Corporation, L=Redmond, S=Washington, C=US
ProcessorArchitecture : neutral
ApplicationIds        : {App}
Manifest              : #document


Results of calling for a package not installed

Example:

PS C:\Users\Dave> Get-AppxPackageFile.ps1 .\BackgroundTask.Windows_1.0.0.0_AnyCPU_Debug.appx

PackageFullName     : Microsoft.SDKSamples.BackgroundTask.JS_1.0.0.0_neutral__8wekyb3d8bbwe
DisplayName         : BackgroundTask JS sample
InstallLocationItem : C:\Program
                      Files\WindowsApps\Microsoft.SDKSamples.BackgroundTask.JS_1.0.0.0_neutral__8wekyb3d8bbwe
Manifest            : #document
ApplicationIds      : {App}
BackgroundTasks     : {}
InstallTimeUtc      : 6/26/2014 2:53:15 PM

Results of calling for a package installed

Get-ProcessAppxPackage.ps1 - Get Appx package info for running processes.

A wrapper for Get-Process, this script provides information about the running processes package identity and package execution state.

Example:

PS C:\Users\Dave> Get-ProcessAppxPackage

PackageFullName               State                         ProcessName                                              Id
---------------               -----                         -----------                                              --
microsoft.windowscommunica... suspended                     livecomm                                              11516
Microsoft.SkypeApp_2.8.0.1... suspended                     WWAHost                                               16796

Example:

PS C:\Users\Dave> Get-ProcessAppxPackage Skype

PackageFullName               State                         ProcessName                                              Id
---------------               -----                         -----------                                              --
Microsoft.SkypeApp_2.8.0.1... suspended                     WWAHost

Launch-AppxPackage.ps1 - Launch an installed Appx package's application.

Given an AppxPackage or PackageFamilyName and ApplicationId Launch-AppxPackage launches the application and provides as output the Get-ProcessAppxPackage result of the laun

View on GitHub
GitHub Stars30
CategoryDevelopment
Updated2mo ago
Forks5

Languages

PowerShell

Security Score

75/100

Audited on Jan 9, 2026

No findings