When you buy a new computer with Windows or create a profile from scratch, the system usually comes loaded with applications you didn't ask for: games, social network access, various utilities, antivirus tests… All that stuff we usually call bloatware and pre-installed appsBesides being annoying, many of these applications take up several gigabytes of disk space and consume resources in the background.
The good news is that Windows offers very powerful tools to get rid of all this. One of the most versatile is PowerShell, the advanced console Windows. With it, you can uninstall modern apps from the Microsoft Store, remove pre-installed apps for your user or for all users, and even delete the system's app "template" so they aren't reinstalled when creating new accounts. Let's see, in detail, how to do it step by step.
What is PowerShell and why is it used to uninstall applications?
PowerShell is a command console and scripting language Much more advanced than the classic Command Prompt. It allows you to send direct instructions to the operating system, automate tasks, and manipulate packages and applications without using graphical interfaces.
Unlike the Settings panel or the Start menu, PowerShell can work with internal system packages (AppX and provisioned packages)That is, with those modern applications that come pre-installed, which sometimes do not appear in the menu or which you cannot remove in the conventional way.
Using commands like Get-AppxPackage, Remove-AppxPackage or Remove-AppxProvisionedPackage You can list, filter, and uninstall apps for both the current user and the entire system. And with other commands like Uninstall-Package or Get-Package You can manage installed software using providers like NuGet or PowerShellGet.
Open PowerShell with administrator privileges
Before we begin, it is essential to run PowerShell with elevated privileges, since uninstalling system apps and provisioned packages requires administrator permission.
- In Windows 10, go to the search bar and type Windows PowerShellRight-click on the result and choose "Run as administrator".
- In Windows 11, you can use Windows Terminal as administrator (which includes PowerShell), or search directly for "PowerShell" and run it as administrator.
When the blue window (or the modern terminal) appears, confirm the User Account Control prompt. From here you can run commands that modify installed applications in the system.
List all installed modern applications
The first step to deleting applications with PowerShell is to know the full internal name of the packageThe brand names (Photos, Mail, Xbox, etc.) do not always match the package identifier that the system understands.
To see a list of modern apps installed in your user profile, use this command in PowerShell:
Get-AppxPackage | Select Name, PackageFullName
When you run it, PowerShell will display all AppX applications with two columns: the package's "friendly" name (Name) and its full identifier (PackageFullName). The latter is the data you will use to manually uninstall apps.
If the list is very long, it might be more convenient to save it to a text file on your Desktop. To do this, you can redirect the output with:
Get-AppxPackage | Select Name, PackageFullName > "$env:userprofile\Desktop\uwp.txt"
With this trick you'll have a text file on your Desktop with all modern apps installedThis way, you can easily find the one you want to delete, copy its PackageFullName, and use it later in the deletion commands.
Uninstall modern apps with Remove-AppxPackage
Once you know the full identifier of an app, you can delete it for the current user with the command Remove-AppxPackage. The basic syntax is:
Remove-AppxPackage "PackageFullName"
For example, if you have located the package corresponding to Microsoft Edge or the Photos app in the text file, you just need to copy and paste the PackageFullName instead of "PackageFullName" and press Enter.
After you run the command, PowerShell will begin the uninstallation process. The time it takes will depend on the size of the application, but it's usually just a matter of seconds. When it's finished, the app will no longer be available. for the current user accountalthough it may remain installed for other accounts or as a base system package.
Uninstall specific pre-installed applications using PowerShell

Instead of manually searching for each identifier, we can take advantage of pre-prepared commands that use wildcards to locate and uninstall very common Windows 10 apps. These commands combine Get-AppxPackage with Remove-AppxPackage and the use of the character * as a wildcard to find the right package.
Run PowerShell as administrator and, depending on the app you want to delete, use one of these examples (you can copy and paste them directly into the console):
- 3D Builder:
Get-AppxPackage *3dbuilder* | Remove-AppxPackage - Alarm and clock:
Get-AppxPackage *windowsalarms* | Remove-AppxPackage - Calculator:
Get-AppxPackage *windowscalculator* | Remove-AppxPackage - Mail and calendar:
Get-AppxPackage *windowscommunicationsapps* | Remove-AppxPackage - Camera:
Get-AppxPackage *windowscamera* | Remove-AppxPackage - Get Office:
Get-AppxPackage *officehub* | Remove-AppxPackage - Get Skype:
Get-AppxPackage *skypeapp* | Remove-AppxPackage - Get Started Application:
Get-AppxPackage *getStarted* | Remove-AppxPackage - Groove Music:
Get-AppxPackage *zunemusic* | Remove-AppxPackage - Maps:
Get-AppxPackage *windowsmaps* | Remove-AppxPackage - Lonely:
Get-AppxPackage *solitairecollection* | Remove-AppxPackage - Money (Finance):
Get-AppxPackage *bingfinance* | Remove-AppxPackage - Movies and TV:
Get-AppxPackage *zunevideo* | Remove-AppxPackage - News:
Get-AppxPackage *bingnews* | Remove-AppxPackage - OneNote:
Get-AppxPackage *OneNote* | Remove-AppxPackage - People:
Get-AppxPackage *personas* | Remove-AppxPackage - Phone Companion:
Get-AppxPackage *WindowsPhone* | Remove-AppxPackage - Photos:
Get-AppxPackage *Fotos* | Remove-AppxPackage - Microsoft Store:
Get-AppxPackage *windowsstore* | Remove-AppxPackage - Sports:
Get-AppxPackage *bingsports* | Remove-AppxPackage - Voice recorder:
Get-AppxPackage *SoundRecorder* | Remove-AppxPackage - Weather:
Get-AppxPackage *bingweather* | Remove-AppxPackage - Xbox:
Get-AppxPackage *xboxapp* | Remove-AppxPackage
These commands remove the applications for the user you are logged in asThe use of asterisks allows you to find the package even if you don't remember the exact name, as long as you guess part of the identifier correctly.
Remove bloatware from Windows using scripts and external tools
Although PowerShell lets you uninstall apps one by one, if your computer is heavily loaded with bloatware, it can be a rather tedious process. That's why other tools exist. automated PowerShell scripts that facilitate mass cleaning.
In Windows 11, and also from Windows 10, you can open Windows Terminal or PowerShell and run this command:
iwr -useb https://git.io/debloat | iex
What this command does is use Invoke-WebRequest (iwr) to download a debloat script from the Internet and run it on the fly with iex (Invoke-Expression). The script presents a window with options to disable Cortana, the Edge PDF reader, configure appearance modes, uninstall OneDrive, and, most importantly, a "Remove all bloatware" button that allows Remove most of the pre-installed apps at once.
These types of solutions are usually open source, which adds transparency, but keep in mind that you're giving administrator permissions for third-party softwareIt is recommended to review the project documentation, the code if you have the knowledge, and make a backup or restore point before performing aggressive cleanups.
Remove pre-installed apps at the system level (Remove-AppxProvisionedPackage)
When you uninstall an app from the Start menu or with Remove-AppxPackage, in many cases all you're doing is deleting it. from your user profileHowever, the base package is still stored in C:\Archivos de programa\WindowsApps, taking up space and ready to be installed for new users you create in the future.
To truly erase that "mold" from the system, you need to use Remove-AppxProvisionedPackageThis command removes provisioned apps, that is, those that Windows includes as part of the base image and that are copied to each new profile.
The most convenient way to work with these packages is by combining PowerShell commands with an interactive graphical grid:
Get-AppxProvisionedPackage -Online | Out-GridView -PassThru | Remove-AppxProvisionedPackage -Online
This line performs three linked tasks through the pipeline (|):
- Get-AppxProvisionedPackage -Online It retrieves all provisioned packages that are installed in the current Windows image.
- Out-GridView -PassThru It displays the results in a grid-like window, where you can filter, sort, and select multiple items at once. Thanks to the -PassThru parameter, your selection is passed to the next command.
- Remove-AppxProvisionedPackage -Online It takes the selected packages and removes them from the system, freeing up disk space and preventing them from being reinstalled for new users.
With this approach you have pretty fine control: you can Only select the apps you know you don't needHowever, you must be careful: removing critical system packages can cause instability or errors in Windows.
Uninstall apps for all Windows 10 accounts using PowerShell
If your PC has multiple user accounts and you want a specific application to disappear for all existing profilesYou can combine Get-AppxPackage with the parameter -AllUsers and then use Remove-AppxPackage.
The general idea is:
Get-AppxPackage -AllUsers PackageFullName | Remove-AppxPackage
In practice, you first get the fully qualified package name (as we've seen before) and then run something like:
Get-AppxPackage -AllUsers "Nombre completo de Windows Xbox" | Remove-AppxPackage
If you don't want to write the full name, you can shorten it with asterisks as wildcards (*)Just like in other PowerShell commands. For example, you could use a string like this: *WindowsXbox* provided it matches part of the PackageFullName that you want to remove.
Once you run the command and press Enter, PowerShell will remove that app from the current profile and all other accounts, making it ideal for global cleaning of shared equipment.
Uninstall all modern apps for all users
If you want to go "brute force" and delete all modern Windows applications for all users at once, there is a direct command to do it:
Get-AppxPackage -AllUsers | Remove-AppxPackage
This instruction iterates through all AppX packages installed for any user and passes them to Remove-AppxPackage, removing them sequentially. It is an operation very radicalGames, Microsoft apps, utilities, etc. will disappear.
Although such a cleanup can free up quite a few gigabytes (especially if the manufacturer has loaded additional system software), it is advisable that know exactly what you're losingSome apps, such as the Microsoft Store or the photo reader, may be useful to you at some point, or be necessary for certain system functions.
Reinstall pre-installed Windows applications using PowerShell
If after deleting apps you regret removing some, or simply want reset all factory default appsYou can also do it with PowerShell.
To reinstall all pre-installed applications for all users, you can use a command like this:
Get-AppxPackage -AllUsers | Foreach {Add-AppxPackage -DisableDevelopmentMode -Register "$($_.InstallLocation)\AppXManifest.xml"}
What this line does is traverse each installed AppX package (or its trace) and re-register its manifest in the system, ensuring that the apps are restored and reappear in the profiles where applicable.
There are also variations for reinstalling a specific application from its path, for example:
Add-AppxPackage -Register "C:\Program Files\WindowsApps\PackageFullName\AppxManifest.xml" -DisableDevelopmentMode
In this case, you need to know the exact path of the package within the WindowsApps folder. This option is a bit more advanced, but it allows you to selectively recover an app you've deleted without needing to restore them all.
Common errors when uninstalling apps with PowerShell and execution policy
Although PowerShell is a very powerful and flexible tool, it is protected by internal implementation policies which can block certain scripts or commands, especially if you try to run .ps1 files downloaded from the Internet or not digitally signed.
If you receive messages such as “script execution is disabled on this system” or permission errors even though you are an administrator, you may need to change the execution policy with:
PowerShell -ExecutionPolicy Unrestricted
Or, once inside PowerShell (as administrator), using:
Set-ExecutionPolicy Unrestricted
This configuration allows you to run unsigned scripts without continuous questioningIt's very practical for testing or using automation scripts, but it also opens the door to running potentially dangerous code if you don't know where it comes from.
For security reasons, it's best to only change this policy when you really need to, and to rely solely on scripts from a trusted sourceAlso, keep in mind that some policy changes apply to the current session or user scope, so you can experiment with more restrictive options (such as RemoteSigned) if you want a balance between security and flexibility.
Uninstall-Package and package management with PackageManagement
In addition to modern AppX-type apps, PowerShell includes the module PackageManagement (formerly OneGet)This allows you to manage software packages from various providers, such as NuGet or PowerShellGet. To uninstall these packages, there is a cmdlet Uninstall-Package.
Its general syntax supports several usage modes. For example, starting from a package object (SoftwareIdentity), you can uninstall it like this:
Uninstall-Package -InputObject <SoftwareIdentity[]> [-AllVersions] [-Force] [-ForceBootstrap] [-WhatIf] [-Confirm]
You can also search by name and version:
Uninstall-Package -Name <String[]> [-RequiredVersion <String>] [-MinimumVersion <String>] [-MaximumVersion <String>] [-AllVersions] [-Force] [-ForceBootstrap] [-WhatIf] [-Confirm] [-ProviderName <String[]>]
In the context of Windows, this is especially useful for modules and scripts installed from the PowerShell gallery or for NuGet packages that have been added to the system. For example:
Uninstall-Package -Name NuGet.Core
If you need a specific version, you can combine it with Get-Package and the pipeline:
Get-Package -Name NuGet.Core -RequiredVersion 2.14.0 | Uninstall-Package
In this case, Get-Package generates a SoftwareIdentity object and passes it to Uninstall-Package as InputObjectwhich then uninstalls the selected package. It's the same pipelining pattern you've already seen with modern app commands.
Uninstall-Package supports a multitude of parameters such as -AllVersions, -Scope, -Force, -ForceBootstrap, -SkipDependencies, -AllowPrereleaseVersions or -WhatIfThese features allow you to fine-tune the behavior: from removing all versions of a package to simulating what would happen without actually running it. It's another piece of the PowerShell ecosystem to have full control over the installed software on your team.
Mastering PowerShell to uninstall pre-installed applications, bloatware, and packages gives you control you won't get with the usual graphical methods: you can truly free up space by removing provisioned packages, clean up all user accounts at once, automate the process with interactive scripts, or combine it with PackageManagement to also remove additional modules and components.
By using execution policies wisely and always checking which package you're touching, it's a powerful and fairly quick way to make Windows much lighter and more tailored to what you really need. Share the information and more users will know about the topic..