Win10 crAPP Remover PowerShell Script GUI

The Win10 crAPP Remover PowerShell script GUI is a PowerShell script used to granularly remove unneeded or unwanted applications and settings from Windows 10 easily via an intuitive GUI without installing anything, with minimal requirements, and without the need to run the script with switches or edit anything within the script. Everything the script does is done through the GUI. It is only tested and verified on Windows 10 1803 / 1809.


This is one of my first PowerShell GUI scripts that I’ve been working on for a couple months. I decided on following this one through because, although there are many Windows 10 decrapifier scripts out there to remove privacy compromising or superfluous apps and settings, they were all-or-nothing scrips with little to no control. I needed something that allowed for granular control over all aspects the script includes, that was easy to use, and that also allowed for undoing actions.

This is the end result (now updated to 1.1.3). In version 2.0, I plan on adding multi-threading, mostly to prevent the app from hanging a couple seconds during intensive processing, and to also allow for dynamic updates to the GUI as things happen such as the progress bar… and to make things happen faster. The longest I had to wait for anything was about 6 seconds to processing about 100 settings at the same time. Multi-threading (or Runspaces in PowerShell), will prevent that.

I had started with multi-threading initially, but that would have delayed a working product. I needed something working sooner. I do plan on adding more functionality, such as the ability to not only undo app removal, services, and scheduled tasks as currently implemented, but for everything.

Download the Script

You can download the script below, or view it and download it on GitLab.  I will be continuously updating the script as needed, so the best place to get it is the GitLab page. That is more likely to have the latest version than downloading it anywhere else.

Download link:
GitLab link:

Update: Added GitLab test branch for non-production testing and so everyone can see planned upcoming changes working. The script is generally safe to run, as nothing major *should* happen until you click a button in the GUI… but especially with the test branch, be careful and run at your own risk.


Win10crAPPRemover_Win10crAPPs Win10crAPPRemover_AppAndPrivacySettings Win10crAPPRemover_StartMenu Win10crAPPRemover_ScheduledTasks Win10crAPPRemover_Services Win10crAPPRemover_about


Once you have downloaded the script, all you need to do is Right-click on it, then click Run with PowerShell. The script will automatically prompt UAC for elevation and should allow scripts to run.

I have included detailed instructions in the “about” tab in the GUI, as shown in the screenshot above.





  1. Not working.
    PS C:\temp> .\Win10crAPPRemover.ps1
    At C:\temp\Win10crAPPRemover.ps1:33 char:2
    + *,*::before,*::after{box-sizing:border-box}html{font-family:sans-seri …
    + ~
    Missing argument in parameter list.
    At C:\temp\Win10crAPPRemover.ps1:33 char:161
    + … ection{display:block}body{margin:0;font-family:-apple-system, BlinkMa …
    + ~
    Missing argument in parameter list.
    At C:\temp\Win10crAPPRemover.ps1:33 char:837
    + … or:inherit;text-decoration:none}pre,code{font-family:”Menlo”, “DejaVu …
    + ~
    Missing argument in parameter list.
    At C:\temp\Win10crAPPRemover.ps1:33 char:1593
    + … :0;border-style:none}textarea{overflow:auto;resize:vertical}[type=”se …
    + ~
    Array index expression is missing or not valid.
    At C:\temp\Win10crAPPRemover.ps1:33 char:1692
    + … mary{display:list-item;cursor:pointer}template{display:none}[hidden]{ …
    + ~
    Array index expression is missing or not valid.
    At C:\temp\Win10crAPPRemover.ps1:44 char:58
    + document.querySelectorAll(‘link[media=”print”]’).forEach(linkTag => {
    + ~
    Missing ‘)’ in method call.
    At C:\temp\Win10crAPPRemover.ps1:47 char:35
    + linkTag.addEventListener(‘load’,function(){’all’; …
    + ~
    Missing expression after ‘,’.
    At C:\temp\Win10crAPPRemover.ps1:47 char:35
    + linkTag.addEventListener(‘load’,function(){’all’; …
    + ~~~~~~~~
    Unexpected token ‘function’ in expression or statement.
    At C:\temp\Win10crAPPRemover.ps1:47 char:35
    + linkTag.addEventListener(‘load’,function(){’all’; …
    + ~
    Missing closing ‘)’ in expression.
    At C:\temp\Win10crAPPRemover.ps1:47 char:44
    + linkTag.addEventListener(‘load’,function(){’all’; …
    + ~
    An expression was expected after ‘(‘.
    Not all parse errors were reported. Correct the reported errors and try again.
    + CategoryInfo : ParserError: (:) [], ParseException
    + FullyQualifiedErrorId : MissingArgument

  2. This is best decrap that I have found. Works on Win10 2004 too. I have run it as a regular user profile to remove unneeded apps,tasks and services. Next time will use it in Audit Mode

  3. Thanks so much for this script. Please add the option to remove the apps for all the users, also are the apps coming back?

  4. I’m just swinging by to applaud you for this. I’m in the middle of upgrading each workstation to Win10 in our company and this has been a godsend. I was trying to find a donate button!

    Thank you again, so much!

  5. Just wanted to leave a comment letting you know what you made is amazing i’m using it regularly, it’s so nice to have it all in one gui. Thanks

  6. Tim,

    This works with 1809 ?..what about 1903 when it is released?

  7. Great work. I like your writing style (direct and to-the-point). I just upgraded from Win7ULT to Win 10 Education and am happy with the OS. I would like to send to you the log file so you can read what was not deleted. It appears Microsoft may have hardened their OS. Also, before upgrading Win7, I tested the OS on a HDD I had sitting around and found that both Cortana and Edge did not install so, I thought I was safe to upgrade my old OS, not so lucky.

  8. Hi Timothy.
    About this feature “remove apps for all users” did you released?

    What about this annoying stuff

    because to remove this from registry you need to do some tricks

    And most annoying thing is WerFault and wermgr and more, they need to connect to Internet, in whole world why do I need this))

  9. Hi, Thanks for making this. I too am frustrated with the all or nothing so looking forward to trying this. I will be trying on 1607 however.

    • Hi, let me know how it goes. I haven’t tested it on 1607, but I’m hoping it still works out due to the nature of the script.
      What I mean by that, is it lists what IS installed or on your system, and lets you do what you want, with some auto-detection.

  10. ill give fdeedback when tested

  11. Will this remove the apps for “all users” or only the currently logged on user?

    • It was designed to be ran in Audit Mode, using the checkbox to remove app provisioning for new users. Therefore, if you were running it under a regular user profile, it would only remove the apps for the currently logged on user. This was by design. I thought it more likely that if this is ran on a system with pre-existing users and ran under someone’s profile, it should only remove apps for that user, as other users may not want that stuff removed.

      But after thinking about it some more, I will be fixing it to remove apps for all users by default. I may add in a checkbox later if that becomes a popular request.

      I have made the changes live.

Leave a Reply

Your email address will not be published. Required fields are marked *