Remove PUA
Summary
This script manages the removal of predefined bloatware packages or lists installed bloatware based on a centrally maintained list. It offers three primary operations: bulk removal, selective removal, and bloatware listing. The remove parameter allows bypassing the PUA List to remove any installed AppxPackage.
PUA List: https://content.provaltech.com/attachments/potentially-unwanted-applications.json
Sample Run

To get the list of installed Bloatware:

To remove all installed Bloatware installed on the computer from the PUA List:

To remove all installed Bloatware except any of WindowsStoreApps category apps and Microsoft.BingNews, and Microsoft.MSPaint:

To remove individual AppxPackages installed on the machine like Microsoft.MicrosoftOfficeHub, Microsoft.XboxApp, Microsoft.Messaging, and Microsoft.People:


Dependencies
User Parameters
| Name | Example | Required | Type | Description |
|---|---|---|---|---|
| ListBloatware | Yes | False | Flag | Select Yes to list installed bloatwares without making changes. |
| Remove | Microsoft.MicrosoftOfficeHub,Microsoft.XboxApp | False | Text | Specify name(s) of the bloatwares to uninstall. |
| RemoveAll | Yes | False | Flag | Set it to Yes to remove all bloatware by category or all found bloatware with or without exceptions |
| Category | XboxFeaturesApps | False | Text | Used with RemoveAll to filter bloatware to a certain category, allowing you to select just a specific category of bloatware. Accepted Values includes - MsftBloatApps - ThirdPartyBloatApps - WindowsStoreApps - XboxFeaturesApps - NonAppxApps |
| Except | xboxGameOverlay | False | Text | Used with RemoveAll or Category to remove all except some item(s) from a category or all together |
| PUAListSource | https://my.cdn.example/pua.json, C:\ProgramData\_Automation\Script\PUA\pua.json | False | Text String | Optional source for an alternate PUA list JSON. When provided, the script will use the specified local JSON file or downloadable URL instead of the default PUA list (https://content.provaltech.com/attachments/potentially-unwanted-applications.json). |
Note : The optional JSON file must contain only the following two supported categories: "MsftBloatApps" and "ThirdPartyBloatApps". All bloatware package names must be listed under one of these categories, as the script only processes these two categories. Any other categories included in the JSON file will not be recognized or processed by the script.
Implementation
Script Details
Step 1
Navigate to Automation ➞ Tasks

Step 2
Create a new Script Editor style task by choosing the Script Editor option from the Add dropdown menu
The New Script page will appear on clicking the Script Editor button:

Step 3
Fill in the following details in the Description section:
Name: Remove - PUA
Description:
Category: Application

Parameters
ListBloatware
Add a new parameter by clicking the Add Parameter button present at the top-right corner of the screen.
This screen will appear.

- Set
ListBloatwarein theParameter Namefield. - Select
Flagfrom theParameter Typedropdown menu. - Click the
Savebutton.

Remove
Add a new parameter by clicking the Add Parameter button present at the top-right corner of the screen.
This screen will appear.

- Set
Removein theParameter Namefield. - Select
Text Stringfrom theParameter Typedropdown menu. - Click the
Savebutton.

RemoveAll
Add a new parameter by clicking the Add Parameter button present at the top-right corner of the screen.
This screen will appear.

- Set
RemoveAllin theParameter Namefield. - Select
Flagfrom theParameter Typedropdown menu. - Click the
Savebutton.

Category
Add a new parameter by clicking the Add Parameter button present at the top-right corner of the screen.
This screen will appear.

- Set
Categoryin theParameter Namefield. - Select
Text Stringfrom theParameter Typedropdown menu. - Click the
Savebutton.

Except
Add a new parameter by clicking the Add Parameter button present at the top-right corner of the screen.
This screen will appear.

- Set
Exceptin theParameter Namefield. - Select
Text Stringfrom theParameter Typedropdown menu. - Click the
Savebutton.

PUAListSource
Add a new parameter by clicking the Add Parameter button present at the top-right corner of the screen.
This screen will appear.

- Set
PUAListSourcein theParameter Namefield. - Select
Text Stringfrom theParameter Typedropdown menu. - Click the
Savebutton.

Script Editor
Click the Add Row button in the Script Editor section to start creating the script
A blank function will appear.
Row 1: Function: PowerShell Script
Search and select the PowerShell Script function.
The following function will pop up on the screen:
Paste in the following PowerShell script and set the Expected time of script execution in seconds to 3600 seconds. Click the Save button.

Row 2: Function: Script Log
Add a new row by clicking the Add Row button.
A blank function will appear.
Search and select the Script Log function.
The following function will pop up on the screen:
In the script log message, simply type %output% and click the Save button
Click the Save button at the top-right corner of the screen to save the script.
Completed Script
Output
- Script log
Changelog
2025-08-12
- Added another parameter
PuaListSource. Its an Optional source for an alternate PUA list JSON. When provided, the script will use the specified local JSON file or downloadable URL instead of the default PUA list. - Updated powershell to use this new parameter and as per our new cwrmm script standards.
2026-04-02
- Updated the PowerShell used in the script as per our new standards.
2025-05-02
- Fixed the bug where the script contained several outdated and potentially incorrect AppxPackage IDs in the bloatware removal arrays. Some Microsoft apps have changed their package identifiers in newer Windows versions, and some third-party apps may have incorrect publisher IDs.
2025-04-01
- Initial version of the document