# How to Remove Specific Apps Using Win11Debloat: CLI and GUI Methods

> Easily remove specific Windows 11 apps with Win11Debloat. Use CLI parameters, the interactive GUI, or saved lists to clean up your system efficiently.

- Repository: [Jeffrey/Win11Debloat](https://github.com/Raphire/Win11Debloat)
- Tags: how-to-guide
- Published: 2026-03-10

---

**Win11Debloat removes specific Windows 11 apps via the `-RemoveApps` parameter with a comma-separated list of AppIds, through an interactive GUI selector, or by using a custom saved list.**

The [Raphire/Win11Debloat](https://github.com/Raphire/Win11Debloat) repository provides a PowerShell-based toolkit for decluttering Windows 11 installations. Whether you need to strip out a single unwanted UWP app or curate a precise list of bloatware for multiple user accounts, the script offers both automated command-line interfaces and interactive visual tools to target specific packages.

## Method 1: Command-Line Removal with Specific App IDs

### Basic Syntax and Parameters

The most direct way to remove specific apps is by invoking the main entry point with the `-RemoveApps` switch and supplying a comma-separated list of **AppIds** via the `-Apps` parameter. In `Win11Debloat.ps1`, the parameter block collects these arguments into `$script:Params`, validates them through `ValidateAppslist`, and then passes the resolved list to the `RemoveApps` function located in `Scripts/AppRemoval/RemoveApps.ps1`.

```powershell
.\Win11Debloat.ps1 -RemoveApps -Apps "Clipchamp.Clipchamp,Microsoft.GamingApp,Microsoft.BingNews"

```

- `-RemoveApps` activates the app-removal engine.
- `-Apps` accepts the exact **AppId** strings defined in [`Config/Apps.json`](https://github.com/Raphire/Win11Debloat/blob/main/Config/Apps.json) (the canonical catalogue of removable packages).

### Targeting Specific Users

By default, the removal operation affects **all users** on the system. To restrict the operation to a single account, use the `-User` or `-AppRemovalTarget` parameter. The script resolves the target user via `GetTargetUserForAppRemoval` and passes the resulting SID to the underlying `Remove-AppxPackage` cmdlets.

```powershell
.\Win11Debloat.ps1 -RemoveApps -Apps "Microsoft.SkypeApp" -User $env:USERNAME

```

This command extracts the current user's SID and invokes the removal routine only for that profile, leaving other user accounts untouched.

## Method 2: Interactive App Selection GUI

For users who prefer a visual interface or need to reuse the same selection repeatedly, Win11Debloat provides a WPF-based generator. The `-RunAppsListGenerator` switch launches `Show-AppSelectionWindow`, which renders `Schemas/AppSelectionWindow.xaml` and allows you to tick checkboxes for each app.

```powershell

# Launch the interactive selector

.\Win11Debloat.ps1 -RunAppsListGenerator

```

After selecting your targets and clicking **Save**, the script writes your choices to `Config/CustomAppsList`. You can then execute the removal using the `-RemoveAppsCustom` switch:

```powershell
.\Win11Debloat.ps1 -RemoveAppsCustom

```

This workflow is ideal for building standardized deployment scripts where the list is curated once but executed across multiple machines.

## Method 3: Force-Removing System-Level Apps

Certain packages like **Microsoft Edge** and **Microsoft OneDrive** are treated as system-level applications. When these appear in your `-Apps` list, the `RemoveApps.ps1` script delegates to **WinGet** for standard uninstallation. If WinGet fails or you need to bypass safeguards, use the `-ForceRemoveEdge` parameter:

```powershell
.\Win11Debloat.ps1 -RemoveApps -Apps "Microsoft.Edge" -ForceRemoveEdge

```

This triggers the `Scripts/AppRemoval/ForceRemoveEdge.ps1` routine, which creates a registry-based scheduled task to forcibly remove the browser when standard methods fail.

## Understanding the Removal Process

The removal logic operates through a non-blocking runspace to keep the UI responsive while executing PowerShell cmdlets. Inside `Scripts/AppRemoval/RemoveApps.ps1`, the script differentiates between package types:

1. **Edge and OneDrive**: Routed through `winget uninstall` commands.
2. **Standard UWP apps**: Processed via `Get-AppxPackage` and `Remove-AppxPackage` (or their provisioned-package equivalents for system-wide removal).

The `$targetUser` variable, derived from `GetTargetUserForAppRemoval` in the main script, determines whether the operation targets `AllUsers`, `CurrentUser`, or a specific SID. This scope handling ensures that provisioning packages are removed from the Windows image when targeting all users, preventing reinstallation for new profiles.

## Summary

- **Direct CLI removal**: Use `-RemoveApps` with the `-Apps` parameter and comma-separated AppIds from [`Config/Apps.json`](https://github.com/Raphire/Win11Debloat/blob/main/Config/Apps.json).
- **Per-user targeting**: Add `-User <username>` or `-AppRemovalTarget <username>` to limit scope to a single account.
- **Visual selection**: Run `-RunAppsListGenerator` to create a curated list, then execute with `-RemoveAppsCustom`.
- **System apps**: Edge and OneDrive require WinGet; use `-ForceRemoveEdge` for stubborn installations.
- **Core files**: The operation is orchestrated in `Win11Debloat.ps1` and executed in `Scripts/AppRemoval/RemoveApps.ps1`.

## Frequently Asked Questions

### How do I find the correct AppId for a specific Windows 11 app?

Open [`Config/Apps.json`](https://github.com/Raphire/Win11Debloat/blob/main/Config/Apps.json) in the repository or your local copy. This JSON file maps human-readable names to the actual **AppId** strings (e.g., `"Microsoft.BingNews"` or `"Clipchamp.Clipchamp"`) used by the Windows Package Manager and `Get-AppxPackage` cmdlets.

### Can I remove apps for only the current user without affecting other accounts?

Yes. Append `-User $env:USERNAME` (or `-AppRemovalTarget $env:USERNAME`) to your command. The script calls `GetTargetUserForAppRemoval` to resolve your SID and passes it to `Remove-AppxPackage`, ensuring the operation affects only the current profile.

### What happens if Win11Debloat cannot remove Microsoft Edge with the standard method?

If the WinGet command fails, the script can fall back to `Scripts/AppRemoval/ForceRemoveEdge.ps1`. Invoke this routine explicitly by adding `-ForceRemoveEdge` to your command line, which implements a registry-based scheduled task to forcibly uninstall the browser.

### Is it possible to save my app selection and run it later on another machine?

Yes. Run `.\Win11Debloat.ps1 -RunAppsListGenerator` to open the GUI, select your apps, and save the list to `Config/CustomAppsList`. You can then transport this file to another system and run `.\Win11Debloat.ps1 -RemoveAppsCustom` to apply the exact same selection.