How To Remove Bloatware From Windows 10 With A PowerShell Script

Note: This guide is written for personal Windows 10 cleanup and safe system administration. Always review every app name before running a script, create a restore point, and avoid removing security tools, hardware utilities, Microsoft Store, driver software, or work/school management apps unless you know exactly what they do.

Windows 10 has many strengths: it is familiar, fast enough on older hardware, and still beloved by people who have no desire to relearn where Microsoft moved the buttons this week. But it also has a famous party trick: showing up with apps you never invited. Candy-style games, trialware, “suggested” apps, OEM utilities, duplicate media tools, and random tiles can turn a clean Start menu into a digital junk drawer.

The good news is that you do not have to click through every app one by one like you are defusing a tiny software bomb. With a careful PowerShell script, you can remove many unwanted Windows 10 apps in batches, clean up provisioned packages so they do not return for new users, and make your PC feel less like a mall kiosk.

This guide explains how to remove bloatware from Windows 10 with a PowerShell script, what to remove, what to leave alone, and how to avoid the classic “I deleted something important and now my computer is giving me the silent treatment” mistake.

What Is Windows 10 Bloatware?

In plain English, bloatware is software that takes up space, uses resources, shows notifications, or clutters the system without giving you enough value in return. On Windows 10, bloatware often appears in three forms:

  • Preinstalled Microsoft Store apps: Weather, Xbox apps, 3D Viewer, Mixed Reality Portal, Microsoft Solitaire Collection, and similar packages.
  • OEM apps: Tools from Dell, HP, Lenovo, Acer, ASUS, and other manufacturers. Some are useful for drivers and updates; others are trialware wearing a tiny hat that says “please subscribe.”
  • Third-party promotional apps: Games, streaming apps, shopping shortcuts, or trial antivirus programs installed before you ever opened the box.

Not every built-in app is bad. Calculator, Photos, Notepad, Windows Security, Store, Terminal components, frameworks, and driver utilities can be important. The goal is not to make Windows 10 as empty as a desert highway. The goal is to remove clutter while keeping the system stable.

Why Use PowerShell Instead of the Settings App?

You can uninstall many apps from Settings > Apps > Apps & features, and that is the best first stop for ordinary desktop programs. But PowerShell is better when you want to remove multiple Appx packages, target apps that do not show a normal uninstall button, or stop built-in apps from reappearing for future Windows user accounts.

Windows 10 uses Appx and MSIX packages for many Microsoft Store-style apps. PowerShell gives you cmdlets that can list those packages, remove installed packages from user profiles, and remove provisioned packages from the Windows image. That last part matters because provisioned apps are staged to install automatically when a new user signs in.

Before You Run Any Debloat Script

PowerShell is powerful. That is the point. It is also why you should treat a debloat script like a kitchen knife, not a spoon. Useful? Absolutely. Something to wave around while distracted? Please do not.

1. Create a Restore Point

Open the Start menu, search for Create a restore point, choose your system drive, and create a restore point before making changes. If the system behaves strangely afterward, this gives you a recovery path.

2. Export a List of Installed Apps

Before removing anything, save a list of installed Appx packages. Open PowerShell as Administrator and run:

This creates a simple reference file on your desktop. If you later wonder, “Did I remove that thing or did Windows just hide it because it enjoys drama?” you can check the list.

3. Start With WhatIf Mode

PowerShell supports -WhatIf on many removal commands. It shows what would happen without actually doing it. That is the computer equivalent of measuring twice and cutting zero times.

The Difference Between Installed Apps and Provisioned Apps

This is the most important concept in Windows 10 debloating.

Installed Appx packages are apps currently installed for a user account. You list them with:

For all users, use:

You remove installed packages with:

Provisioned Appx packages are apps staged in the Windows image. They may install automatically when a new user profile is created. You list them with:

You remove provisioned packages with:

In short: remove installed packages to clean current users, and remove provisioned packages to keep the same clutter from showing up again for new users.

A Safe Windows 10 Bloatware Removal Script

The safest approach is to use a blocklist: you name the apps you want to remove, and the script removes only those matching packages. Avoid “remove everything” scripts. They are exciting in the same way a raccoon in your ceiling is exciting.

Copy the script below into Notepad and save it as Remove-Windows10-Bloatware.ps1.

How to Run the PowerShell Script

Follow these steps carefully:

  1. Right-click the Start button.
  2. Select Windows PowerShell (Admin) or Terminal (Admin).
  3. Go to the folder where you saved the script. For example:

For the current PowerShell session only, allow the script to run:

Now run the script:

Using -Scope Process is important because it changes the execution policy only for the current PowerShell window. When you close it, the temporary setting disappears. That is much cleaner than permanently weakening script protections just to remove a few apps that invited themselves to breakfast.

Test the Script First With WhatIf

If you want to preview the removals, modify the two removal lines by adding -WhatIf:

Run the script once in preview mode, read the output, and confirm that the list matches your expectations. After that, remove -WhatIf and run the real cleanup.

Apps You Should Usually Not Remove

Some packages may look unnecessary but support important Windows features. Be cautious with anything related to frameworks, the Microsoft Store, security, desktop experience, codecs, account sign-in, or device management.

In most cases, avoid removing:

  • Microsoft.WindowsStore if you use Store apps or need to reinstall them easily.
  • Microsoft.DesktopAppInstaller because it is related to App Installer and WinGet.
  • Microsoft.VCLibs, Microsoft.NET.Native, and other dependency frameworks.
  • Windows Security, Microsoft Defender components, and update-related services.
  • OEM driver tools that manage BIOS updates, hotkeys, touchpads, audio, graphics, or battery health.

When in doubt, search the package name before removing it. Mystery packages are not automatically bloatware. Sometimes they are boring little support beams holding up something you actually use.

How to Remove Traditional Desktop Bloatware

PowerShell Appx commands mainly target Microsoft Store-style packages. Traditional desktop programs, also called Win32 apps, may need different removal methods. For those, try Windows Settings first:

Settings > Apps > Apps & features > Select the app > Uninstall

You can also use WinGet on supported Windows 10 systems. First, list installed apps:

Then uninstall a specific app by ID:

WinGet is useful for desktop apps such as browsers, utilities, messaging apps, media tools, and other software installed outside the Microsoft Store. However, do not use it blindly. Always confirm the app name and publisher before uninstalling.

How to Reinstall Removed Microsoft Store Apps

If you remove an app and later miss it, open Microsoft Store and search for the app by name. Many apps can be reinstalled from there. If Store itself is still installed, recovery is usually straightforward.

For some built-in apps, you can also re-register packages, but that process is more advanced and depends on whether the package files still exist on the system. That is another reason not to remove the Microsoft Store or core dependency packages unless you are intentionally building a locked-down image.

Will Debloating Make Windows 10 Faster?

Sometimes, yesbut do not expect a ten-year-old laptop to turn into a spaceship. Removing bloatware can reduce Start menu clutter, background tasks, notifications, disk usage, and update noise. On low-storage devices, the difference can feel meaningful. On a powerful desktop with plenty of RAM and SSD space, the biggest improvement may be psychological: your PC finally stops looking like a software yard sale.

The best performance gains usually come from combining debloating with practical maintenance:

  • Disable unnecessary startup apps in Task Manager.
  • Uninstall trial antivirus suites if you use Microsoft Defender or another trusted security tool.
  • Keep drivers updated through official manufacturer channels.
  • Clean temporary files with Windows Storage settings.
  • Use an SSD instead of an old hard drive, if hardware upgrades are possible.

Common PowerShell Debloating Mistakes

Removing Too Much at Once

The most common mistake is running a giant script from the internet without reading it. A script can be popular and still be wrong for your PC. Remove a reasonable list first, restart, test, and then continue if needed.

Confusing Appx Apps With Desktop Programs

If Get-AppxPackage does not find an app, it may be a normal desktop program. Use Settings, Control Panel, the vendor uninstaller, or WinGet instead.

Forgetting Other User Profiles

Removing an app from your account does not always remove it from every user. That is why the script checks installed packages for all users and also removes provisioned packages.

Deleting OEM Utilities Without Research

Some manufacturer apps are annoying. Some control fan profiles, keyboard shortcuts, firmware updates, battery charging limits, color profiles, or audio enhancements. Remove the wrong one and your laptop may still work, but it may also become weird in a very specific and irritating way.

Best Practices for a Clean Windows 10 Setup

The best Windows 10 debloat strategy is boring, careful, and repeatable. That may not sound exciting, but boring is exactly what you want when changing system apps. Fireworks are great on holidays, not in PowerShell.

  • Use a blocklist: Remove only named apps you recognize.
  • Keep a log: Save what the script removed.
  • Preview first: Use -WhatIf when possible.
  • Restart afterward: Let Windows settle after removals.
  • Test daily tasks: Open Start, Settings, Store, Photos, audio, Wi-Fi, Bluetooth, and printing.
  • Save your script: Reuse it after clean installs or feature updates.

A Practical 500-Word Experience Section: What Debloating Windows 10 Feels Like in Real Life

The first time you remove bloatware from Windows 10 with a PowerShell script, it feels a little like cleaning out a garage you inherited from someone who collected mystery cables. At first, everything looks suspicious. Then you realize some items are genuinely useful, some are harmless, and some have been sitting there for years doing absolutely nothing except taking up space and judging you.

In real-world use, the biggest benefit is not always raw speed. Yes, older laptops with slow drives and limited memory can feel more responsive after removing unnecessary apps. But the more immediate improvement is clarity. The Start menu becomes cleaner. Search results become less noisy. Notifications calm down. You stop seeing apps you never opened and never planned to open. Your computer begins to feel like your machine again, not a showroom demo unit with opinions.

One practical lesson is that conservative scripts age better than aggressive ones. A short, readable blocklist is easier to trust than a monster script with hundreds of tweaks, registry edits, service changes, scheduled task removals, and comments like “disable this probably.” If you are managing your own PC, you do not need to win an Olympic medal in debloating. You need a stable computer that does not waste your time.

Another lesson is that Windows updates can be sneaky. Sometimes a feature update, repair install, or new user profile brings back apps you already removed. That is where provisioned package removal helps. Removing the installed app cleans the current user experience; removing the provisioned package helps prevent the same app from being installed automatically for future users. It is the difference between taking out the trash and asking the building not to deliver more trash tomorrow.

Testing matters. After running a debloat script, restart the PC and check the basics: Wi-Fi, sound, Bluetooth, printer, camera, Microsoft Store, Windows Security, and any apps you use for school, work, gaming, or creative projects. If something important breaks, do not panic-click through random fixes. Check your log, review what was removed, and reinstall the needed app from Microsoft Store or the vendor website.

It is also worth saying that bloatware removal is not a personality test. Some users like Xbox apps. Some use Your Phone. Some rely on OneNote. Some never want to see Mixed Reality Portal again unless it arrives with snacks and an apology. The right script is personal. The best debloat list is the one that removes what you do not use while preserving what makes your workflow easier.

For family computers, be extra cautious. That “useless” app may be the one your sibling uses for homework, your parent uses for photos, or your grandparent opens because the icon is familiar. When cleaning a shared machine, ask before removing apps. A clean PC is nice; a household tech support argument is less charming.

In the end, PowerShell debloating is less about fighting Windows and more about setting boundaries. You are telling the operating system, politely but firmly, “No, thank you, I do not need five apps I never requested.” Done carefully, it makes Windows 10 lighter, quieter, and easier to use.

Conclusion

Removing bloatware from Windows 10 with a PowerShell script is one of the fastest ways to clean up a cluttered installation, especially when you are dealing with built-in Appx packages and preinstalled Store apps. The key is to be selective. Use Get-AppxPackage to identify installed apps, Remove-AppxPackage to remove them, Get-AppxProvisionedPackage to find apps staged for new users, and Remove-AppxProvisionedPackage to stop those apps from returning.

A good Windows 10 debloat script should be readable, reversible where possible, and focused on apps you actually want gone. Create a restore point, export your app list, preview with -WhatIf, keep logs, and avoid removing core Windows components. Do that, and your PC can feel cleaner without becoming a science experiment with a keyboard.