Removing Bloatware from Windows 10 & 11 via script

Updated May 2023 – The script is now multi-language so can be deployed to an OS in any Windows supported language and should work the same

One complaint I often hear about using straight OOBE autopilot is around the bloatware, either manufacturer installed (McAfee trials anyone?) or the Microsoft stuff, after all, who needs Xbox Gaming bar on an enterprise machine?

One option is to take the machine and drop on a fresh ISO, add the autopilot hash (or inject the JSON) and then remove the Microsoft apps via Store for Business and uninstall assignments. This of course works well, but it’s effort and also means you can’t ship straight from the manufacturer unless you also send a USB stick with something like the excellent OSD Cloud from David Segura (which I would strongly recommend for “it’s dead, Jim,” rebuilds.

I, personally, prefer to embrace the future and go all out Autopilot, ship straight to your users and let Intune sort the rest which obviously pushes me down the scripting route. There are plenty of scripts out there, but none quite ticked all of the boxes, I wanted something that would remove all MS apps without me having to mess with the store, manufacturer bloat and anything else which might have crept on.

I then saw this post from Ben Whitmore and decided I wanted it to be self-updating too.

So, here is my BloatWare removal script:

https://github.com/andrew-s-taylor/public/tree/main/De-Bloat

In this folder you will find the script to remove the bloat, the script to deploy it and also a script if you want to deploy as an application (as well as the IntuneWin file)

De-Bloat Script

Let’s start with the script itself, it will:

  • Remove AppX Packages (listed)
  • Remove associated reg keys
  • Disable Windows Feedback
  • Removes Cortana from Search
  • Removes Web Results from search
  • Disables Wi-Fi Sense
  • Disables Live Tiles
  • Removes unwanted scheduled tasks (Xbox Live etc.)
  • Removes Windows 11 specific apps (Teams Chat for example)
  • Clears start menu
  • Disables the hidden surfing game in Edge
  • Removes Dell, HP and Lenovo specific bloat (by detecting manufacturer and deploying appropriately)
  • Removes McAfee (if detected)
  • Removes any Win32 apps which aren’t Intune, Windows Update or MS Edge
  • Removes Chrome

I know some of you may be looking at the last two options and worrying about the current estate if you deploy site-wide, but I have you covered. The Win32 app removal part will only run if NO apps have been deployed via Intune. If it detects any installations, it will just skip that bit.

The full script will report back to a log file here:

C:\ProgramData\Debloat\Debloat.log

Intune Script Deployment

My suggestion is to deploy as a device script in Intune, that way it will run prior to any apps installing and you will have the full experience. This is where the secondary script comes in. This will grab the latest copy of the de-bloat script, copy it to the machine and run locally. It’s quicker and means you can always be sure devices are running the latest version without constantly replacing scripts:

NOTE: Run in the 64-bit context

$DebloatFolder = "C:\ProgramData\Debloat"
If (Test-Path $DebloatFolder) {
    Write-Output "$DebloatFolder exists. Skipping."
}
Else {
    Write-Output "The folder '$DebloatFolder' doesn't exist. This folder will be used for storing logs created after the script runs. Creating now."
    Start-Sleep 1
    New-Item -Path "$DebloatFolder" -ItemType Directory
    Write-Output "The folder $DebloatFolder was successfully created."
}

$templateFilePath = "C:\ProgramData\Debloat\removebloat.ps1"

Invoke-WebRequest `
-Uri "https://raw.githubusercontent.com/andrew-s-taylor/public/main/De-Bloat/RemoveBloat.ps1" `
-OutFile $templateFilePath `
-UseBasicParsing `
-Headers @{"Cache-Control"="no-cache"}

invoke-expression -Command $templateFilePath

Intune Application Deployment

If you would prefer to deploy as an application, you can either grab the Intunewin file and use the following commands:

Install:

powershell -executionpolicy bypass -file debloat-intune-script.ps1

Uninstall (obviously not an option, so a dead command)

cmd.exe /c

Detection:

C:\ProgramData\Debloat\Debloat.log

OR

If you want to be extra lazy, run this script:

Deploy-DeBloat-Application.ps1

Which will download the file and setup the application for you

Happy de-bloating!

89 thoughts on “Removing Bloatware from Windows 10 & 11 via script”

  1. Greate post!

    When i use the Deploy-DeBloat-Application.ps1 script i get some error messages that the create New-DetectionRule is not recognized.

    Is this due missing modules you are using, if so which modules do you use ?

    Reply
  2. I am having trouble getting this to work. It has ran on my test PC, looking at the logs it says its removed HP Bloat but its still there, and several other things that I have checked. The surf game is listed above but no mention of this on the log file.
    The HP bloat that is present is HP audio control, hp pc hardware diag, hp power manager, hp privacy settings, hp quickdrop, hp support assistant, hp system information and myhp
    This script would be perfect for our needs if we can get these bits sorted, many thanks.

    Reply
      • That’s sounds like it hasn’t deployed properly. Is the script in the ProgramData\DeBloat folder?
        Did it run in the System context as a device targeted script?

        Feel free to drop me an email if it’s easier

        Reply
        • Hi Andrew, cheers for the reply.
          Yes its in the programdata\debloat folder and the log says its run as system.
          I have looked for your email but cant find it directly, do you mean just the contact link on your about page?

          Reply
        • Hi Andrew,
          Thanks for your reply.
          Yes its running as system and in programdata\debloat
          it looks to have done lots of removal and disabling but not the HP bloat and Surf. I am just going to run it again on fresh autopilot.
          What is your email? i cant see it on the site or do you mean from the about page?
          Many thanks

          Reply
  3. Hi Andrew, thanks for this. I have a question. I want to keep Chrome on the device so I’ve commented out the sections on your script however how do I deploy the two scripts exactly. I’ve added the RemoveBloat script on intune however no luck.

    Reply
    • Hi Jess, you have two options for this. Firstly you could just deploy the removebloat script directly in Intune and target your devices, but keep in mind that you’ll need to keep updating it as and when we find more bits to remove.
      The other option is you fork or host the removebloat script in your own storage (and Azure blob would work fine) and then change the Uri in the debloat-intune-script to wherever you are hosting the bloat script itself.
      Feel free to drop me an email on the contact page if you need any help deploying them

      Reply
  4. Andrew this script is amazing. It’s almost 1:30 am and i should be in bed but i’m too excited. I’m watching this thing uninstall everything. lol.

    You have literally saved me hundreds of hours.

    Reply
  5. Hi Andrew,
    First off, thanks for all the work.

    I downloaded all 3 scripts. Which one do I call when creating the devices script? Deploy or Remove, or debloat?

    Thanks again!
    -Frank

    Reply
    • Hi Frank, the remove script is the one that does the actual removal. The Deploy script is if you want to use my version and have the machines always grab the latest copy. It’s entirely up to you which to use between the two.

      Hope this helps

      Reply
  6. It must be a name change because it is unistalling Windows Notepad. My work around is to have inTune reinstall notepad from the appstore after your script has run by using it as a dependency. Anyway….amazing script. THX for sharing.

    Reply
  7. Hi Andrew,

    First and foremost, thank you for your efforts – the script works perfectly except for removing Dell Bloatware – none of the Dell crap was removed, – I tested this on a Windows 11 machine.

    Reply
    • Hi, I have just released a new version which I think should fix the issue. I don’t have a Dell device to hand for testing so the names might need adjusting slightly of the apps. I’ll see if I can find a Dell ISO somewhere to spin up a VM

      Reply
  8. Hi Andy,

    This does not seem to remove the following Dell junk bloatware

    1)Dell Optimzer service
    2) Dell update – support assist update plugin

    Also nothing being removed on HP.
    Could you please release an update

    many thanks.

    Sithum

    Reply
  9. Hi,

    The script also removes firmware update and Waves.
    Attempting to remove Appx package: [WavesAudio.MaxxAudioProforDell2019]…
    Successfully removed Appx package: [WavesAudio.MaxxAudioProforDell2019]
    Attempting to remove Appx package: [WavesAudio.MaxxAudioProforDell2019]…
    Successfully removed Appx package: [WavesAudio.MaxxAudioProforDell2019]
    Attempting to uninstall: [Dell – Extension – 1.8.2.176]…
    Successfully uninstalled: [Dell – Extension – 1.8.2.176]
    Attempting to uninstall: [Dell, Inc. – Firmware – 0.1.7.0]…
    Successfully uninstalled: [Dell, Inc. – Firmware – 0.1.7.0]

    Can you exclude this please?

    Reply
  10. Hello Andrew,
    I ran your script locally on my windows 11 22h2 test machine and it succeeded without any error – well it seemed like. Before running, I did alter some small bits of the script, like commenting and uncommenting things we need/don’t need.

    The start menu didn’t change at all, the bloatware is still there like the spotify link, your phone, office …

    So I took a look in the log file, and it first looked okay, but I was wondering what these logs mean?

    “Trying to remove *app XYZ*
    Path :
    Online : True”

    Regards
    Felix

    Reply
    • Hi Felix,
      On Windows 11, those aren’t actual apps, they are just stubs which install the apps when clicked on.

      The script replaces the start menu on a Windows 10 machine, but Windows 11 works differently so I haven’t added that yet.

      If you are mananging the devices using Intune, the best option is to set the start menu with a config policy

      Reply
  11. Hi Andrew,
    wow – thank you for the quick response. I am right in my assumption that these app removals are applied system-wide and are not user specific? Do you know how windows behaves after bigger updates? Are these apps coming back at some point?

    I’ve tried the updated script, and it works much better now for Windows 11! Looks like Windows Enterprise, love it.

    But there are a few things which are still there:
    – Xbox Game Bar
    – Cortana
    – Microsoft To Do
    – OneDrive

    Would be awesome if you could update your script to delete these too. Maybe even make the “first steps” app as an option for removal?

    Fyi: I want to apply the script within my MDT task sequence. Currently trying to figure out the perfect timing since our domain policy and antivirus program blocks these kinds of scripts, so I have to run it after the installation and before domain join.

    Felix

    Reply
    • Hi Felix,

      The Game Bar is tricky to remove, but I’ve just added an update which will hide the gaming Settings menu.
      Cortana should now be removed as well.

      For To-Do, add this to the blacklisted apps at the top: “Microsoft.Todos”

      OneDrive you would have to look through the registry and call the uninstaller, it’s not something I will be adding to the script though as I feel it’s something everyone should be using anyway.

      The apps shouldn’t return after an update as the appxpackages are removed, but nothing is guaranteed on that front

      Thanks

      Andrew

      Reply
  12. Hello Andrew,
    thanks for the update, hope you had a good start into the new year.

    I finally put the update on my testing machine. The “Microsoft.Todos” wildcard worked and the Game Bar as well as Cortana are now gone, unfortunately WhatsApp, TikTok, Prime Video, Instagram, Adobe Express and Messenger are still there. I tried to alter the script and added these apps with wildcards to the bloatware list like “*Whatsapp*” etc., but it didn’t work. I think it’s because these icons are just links for installing and not the real apps.

    Best regards
    Felix

    Reply
    • Hi Felix,
      When are you running the script? Those aren’t apps but are just install stubs. If you run the script pre-login, it sets the default start menu for new users.
      If you run it after a user has already logged in though, it won’t update for that user.

      Thanks

      Andrew

      Reply
  13. Would it be possible to include a way to add our own whitelisted apps in a local file or something? That way we can leave the automatic download of your script running and we would only have to change the local file.

    Reply
  14. Hey Andrew, thanks for the great work you’re providing. Could you add Microsoft Family to your script? It is now installed with Windows 11 Pro. Thanks, Mike

    Reply
  15. Hi Andrew,

    Many thanks for this great script, it’s ideal for use when autopiloting devices. I have noticed in the log that Dell – Extension and Dell, Inc. – Firmware is being removed even though they’re whitelisted. Log extract below:

    Attempting to uninstall: [Dell – Extension – 1.8.2.176]…
    Successfully uninstalled: [Dell – Extension – 1.8.2.176]
    Attempting to uninstall: [Dell – Extension – 1.8.2.146]…
    Successfully uninstalled: [Dell – Extension – 1.8.2.146]
    Attempting to uninstall: [Dell, Inc. – Firmware – 0.1.8.3]…
    Successfully uninstalled: [Dell, Inc. – Firmware – 0.1.8.3]
    Attempting to uninstall: [Dell, Inc. – Firmware – 11.20.1.7]…
    Successfully uninstalled: [Dell, Inc. – Firmware – 11.20.1.7]

    We’ve amended only a small section of your script and have wrapped it up as a Win32 app.

    Any ideas why this would be happening?

    Many thanks once again.

    Reply
  16. Sorry Andrew, also seems to be uninstalling Edge and other apps after the Detect McAfee script line:

    Uninstalling Microsoft Edge
    Uninstalling Teams Machine-Wide Installer
    Uninstalling Microsoft Intune Management Extension

    Reply
  17. Thanks for coming back so quickly Andrew. Sure, it’s after the Detecting Manufacturer then Dell detected section.

    Reply
  18. Hi Andrew, great script. I’m running this against a new HP laptop, but it’s not removing HP Connection Optimizer, HP Documentation, HP Security Update Service, HP Sure Run Module and HP Wolf Security – Console. Any ideas?

    Detecting Manufacturer
    HP detected
    Attempting to uninstall: [HP Security Update Service]…
    WARNING: Failed to uninstall: []
    Removed HP bloat

    Reply
        • Seems to be working, thank you! I did notice, even on a clean install of Win11 Azure join autopilot, the Teams Chat icon is still in the taskbar. I can hide this with a config policy, but any idea why the script isn’t hiding that? I ran it manually in a elevated PS windows, and it doesn’t hide/disable it. It’s in the script:

          #Remove Teams Chat
          $MSTeams = “MicrosoftTeams”

          $WinPackage = Get-AppxPackage -allusers | Where-Object {$_.Name -eq $MSTeams}
          $ProvisionedPackage = Get-AppxProvisionedPackage -Online | Where-Object { $_.DisplayName -eq $WinPackage }
          If ($null -ne $WinPackage)
          {
          Remove-AppxPackage -Package $WinPackage.PackageFullName
          }

          If ($null -ne $ProvisionedPackage)
          {
          Remove-AppxProvisionedPackage -online -Packagename $ProvisionedPackage.Packagename
          }
          write-host “Removed Teams Chat”

          Reply
  19. One thing to keep in mind is that the location service is required if you want to use the locate device function from Intune. This is particularly useful when a device is lost or accidentally left at an airport (speaking from experience).

    We had a user walk away from their laptop bag and board an airplane. We were able to find the device location and contacted the airport to retrieve the laptop at a later date.

    Reply
  20. Getting a TerminatingError(Set-ACL): “The argument cannot be bound to the “AclObject” parameter because it is NULL.”

    SettingsPageVisibility : hide:gaming-gamebar;gaming-gamedvr;gaming-broadcasting;gaming-gamemode;gaming-xboxnetworking
    PSPath                 : Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Explorer
    PSParentPath           : Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies
    PSChildName            : Explorer
    PSDrive                : HKLM
    PSProvider             : Microsoft.PowerShell.Core\Registry

    System info:
    Windows: 10.0.22621.0
    PSVersion: 5.1.22621.963
    PSEdition: Desktop
    PSCompatibleVersions: 1.0, 2.0, 3.0, 4.0, 5.0, 5.1.22621.963
    BuildVersion: 10.0.22621.963
    CLRVersion: 4.0.30319.42000
    WSManStackVersion: 3.0
    PSRemotingProtocolVersion: 2.3
    SerializationVersion: 1.1.0.1

    Reply
  21. When running the Dell software removal the variables are coming back as empty arrays even though Dell software is installed on the computer. If you only run the matching for $UninstallPrograms or -like “*Dell*”, it fills the array and returns a valid list. I believe the issue is when checking the items matching the $WhitelistedApps.

    The script should be written like this instead:

    $InstalledPackages = Get-AppxPackage -AllUsers | Where-Object {(($_.Name -in $UninstallPrograms) -or ($_.Name -like “*Dell*”)) -and ($_.Name -NotMatch $WhitelistedApps)}

    $ProvisionedPackages = Get-AppxProvisionedPackage -Online | Where-Object {(($_.Name -in $UninstallPrograms) -or ($_.Name -like “*Dell*”)) -and ($_.Name -NotMatch $WhitelistedApps)}

    $InstalledPrograms = Get-Package | Where-Object {(($_.Name -in $UninstallPrograms) -or ($_.Name -like “*Dell*”)) -and ($_.Name -NotMatch $WhitelistedApps)}

    I haven’t used any portion of the other manufacturers so I can’t speak to the validity of code there as I removed it from the script, but it will likely cause the same issue if you are using the same syntax.

    Reply
    • I’ve updated it now with that new query. Dell was the more tricky one to sort, plus I don’t have any Dell machines here to test on.
      Let me know how you get on with the new one

      Thanks

      Reply
  22. Hello,
    When i run the PS script from intune for Pre-Provisioning in Windows 11 22H2 it seems to work great but all the apps that were uninstalled that live in the start menu don’t get unpinned/Uninstalled and since the apps are uninstalled you can’t unpin them from PS. Was not sure if that is normal or just a new bug for windows 11? The apps that stay are
    M365 (Office), Mail and Calendar, Xbox, Solitaire Kindel, Spotify, WhatsApp, TikTok, ESPN, Instagram, Prime Video, Windows Clock, Movies & TV, and Microsoft Tips.

    Reply
    • Hi Patrick,
      Those apps aren’t apps, but stubs which install the apps when clicked on. The script should replace the start menu layout, I’ll see what happens on a W11 22H2 box.
      If you are using Intune, I would suggest pushing out a custom start menu anyway which will fix it for all users (I’ve covered it here)

      Reply
  23. OS – WINDOWS 11 22H2

    i try to run your script and got the following error, any idea to resolved?

    PS C:\ProgramData\DeBloat> .\Deploy-DeBloat-Application.ps1
    At C:\ProgramData\DeBloat\Deploy-DeBloat-Application.ps1:209 char:17
    + Sign up
    + ~
    The ampersand (&) character is not allowed. The & operator is reserved for future use; wrap an ampersand in double
    quotation marks (“&”) to pass it as part of a string.
    At C:\ProgramData\DeBloat\Deploy-DeBloat-Application.ps1:214 char:209
    + … k Button–medium Button d-lg-none color-fg-inherit p-1″> <span cla …
    + ~
    The '<' operator is reserved for future use.
    At C:\ProgramData\DeBloat\Deploy-DeBloat-Application.ps1:432 char:13
    + CI/CD & Automation
    + ~
    The ampersand (&) character is not allowed. The & operator is reserved for future use; wrap an ampersand in double
    quotation marks ("&") to pass it as part of a string.
    At C:\ProgramData\DeBloat\Deploy-DeBloat-Application.ps1:1378 char:96
    + … ="" data-disable-with="" data-dropdown-tracking="{"type":&q …
    + ~
    The ampersand (&) character is not allowed. The & operator is reserved for future use; wrap an ampersand in double
    quotation marks ("&") to pass it as part of a string.
    At C:\ProgramData\DeBloat\Deploy-DeBloat-Application.ps1:1378 char:103
    + … a-disable-with="" data-dropdown-tracking="{"type":"blo …
    + ~
    The ampersand (&) character is not allowed. The & operator is reserved for future use; wrap an ampersand in double
    quotation marks ("&") to pass it as part of a string.
    At C:\ProgramData\DeBloat\Deploy-DeBloat-Application.ps1:1378 char:146
    + … "type":"blob_edit_dropdown.more_options_click",&q …
    + ~
    The ampersand (&) character is not allowed. The & operator is reserved for future use; wrap an ampersand in double
    quotation marks ("&") to pass it as part of a string.
    At C:\ProgramData\DeBloat\Deploy-DeBloat-Application.ps1:1378 char:153
    + … type":"blob_edit_dropdown.more_options_click","co …
    + ~
    Missing expression after unary operator ','.
    At C:\ProgramData\DeBloat\Deploy-DeBloat-Application.ps1:1378 char:153
    + … ype":"blob_edit_dropdown.more_options_click","con …
    + ~
    Unexpected token '&' in expression or statement.
    At C:\ProgramData\DeBloat\Deploy-DeBloat-Application.ps1:1378 char:166
    + … ot;blob_edit_dropdown.more_options_click","context":{& …
    + ~
    The ampersand (&) character is not allowed. The & operator is reserved for future use; wrap an ampersand in double
    quotation marks ("&") to pass it as part of a string.
    At C:\ProgramData\DeBloat\Deploy-DeBloat-Application.ps1:1378 char:193
    + … options_click","context":{"repository_id":37 …
    + ~
    The ampersand (&) character is not allowed. The & operator is reserved for future use; wrap an ampersand in double
    quotation marks ("&") to pass it as part of a string.
    Not all parse errors were reported. Correct the reported errors and try again.
    + CategoryInfo : ParserError: (:) [], ParseException
    + FullyQualifiedErrorId : AmpersandNotAllowed

    Reply
  24. Hi,

    Downloaded your script.
    Seem to be same issue as well.

    PS C:\ProgramData\DeBloat> .\Deploy-DeBloat-Application.ps1
    At C:\ProgramData\DeBloat\Deploy-DeBloat-Application.ps1:210 char:17
    + Sign up
    + ~
    The ampersand (&) character is not allowed. The & operator is reserved for future use; wrap an ampersand in double
    quotation marks (“&”) to pass it as part of a string.
    At C:\ProgramData\DeBloat\Deploy-DeBloat-Application.ps1:215 char:209
    + … k Button–medium Button d-lg-none color-fg-inherit p-1″> <span cla …
    + ~
    The '<' operator is reserved for future use.
    At C:\ProgramData\DeBloat\Deploy-DeBloat-Application.ps1:433 char:13
    + CI/CD & Automation
    + ~
    The ampersand (&) character is not allowed. The & operator is reserved for future use; wrap an ampersand in double
    quotation marks ("&") to pass it as part of a string.
    At C:\ProgramData\DeBloat\Deploy-DeBloat-Application.ps1:1379 char:96
    + … ="" data-disable-with="" data-dropdown-tracking="{"type":&q …
    + ~
    The ampersand (&) character is not allowed. The & operator is reserved for future use; wrap an ampersand in double
    quotation marks ("&") to pass it as part of a string.
    At C:\ProgramData\DeBloat\Deploy-DeBloat-Application.ps1:1379 char:103
    + … a-disable-with="" data-dropdown-tracking="{"type":"blo …
    + ~
    The ampersand (&) character is not allowed. The & operator is reserved for future use; wrap an ampersand in double
    quotation marks ("&") to pass it as part of a string.
    At C:\ProgramData\DeBloat\Deploy-DeBloat-Application.ps1:1379 char:146
    + … "type":"blob_edit_dropdown.more_options_click",&q …
    + ~
    The ampersand (&) character is not allowed. The & operator is reserved for future use; wrap an ampersand in double
    quotation marks ("&") to pass it as part of a string.
    At C:\ProgramData\DeBloat\Deploy-DeBloat-Application.ps1:1379 char:153
    + … type":"blob_edit_dropdown.more_options_click","co …
    + ~
    Missing expression after unary operator ','.
    At C:\ProgramData\DeBloat\Deploy-DeBloat-Application.ps1:1379 char:153
    + … ype":"blob_edit_dropdown.more_options_click","con …
    + ~
    Unexpected token '&' in expression or statement.
    At C:\ProgramData\DeBloat\Deploy-DeBloat-Application.ps1:1379 char:166
    + … ot;blob_edit_dropdown.more_options_click","context":{& …
    + ~
    The ampersand (&) character is not allowed. The & operator is reserved for future use; wrap an ampersand in double
    quotation marks ("&") to pass it as part of a string.
    At C:\ProgramData\DeBloat\Deploy-DeBloat-Application.ps1:1379 char:193
    + … options_click","context":{"repository_id":37 …
    + ~
    The ampersand (&) character is not allowed. The & operator is reserved for future use; wrap an ampersand in double
    quotation marks ("&") to pass it as part of a string.
    Not all parse errors were reported. Correct the reported errors and try again.
    + CategoryInfo : ParserError: (:) [], ParseException
    + FullyQualifiedErrorId : AmpersandNotAllowed

    Reply
    • Is the Graph connection working ok? It seems to be trying to sign you up for something
      What happens if you run this:
      Select-MgProfile -Name Beta
      Connect-MgGraph -Scopes DeviceManagementApps.ReadWrite.All, DeviceManagementConfiguration.ReadWrite.All, DeviceManagementServiceConfig.ReadWrite.All, Group.ReadWrite.All, GroupMember.ReadWrite.All, openid, profile, email, offline_access

      Reply
  25. Ignore please. Thats a blunder from my side.
    I save the link which brought unnecessary HTML codes.
    once i’ve click and open your code into raw then I copy your code and its working fine now 🙂

    Reply
  26. Hi Andrew,

    Is there a way not to remove dell software (we like to use them for firmware upgrades etc).
    And still continue to use your automatic running the debloat from github?
    I like the way you maintain it 🙂

    Reply
    • Possibly, if I offloaded the whitelist or check for a text file first.
      What if I added a parameter for a whitelist text file path, if it exists, use that, if not use the defaults.
      Would something like that work?
      Which apps do you use which are being removed? The other option would be a parameter for those particular apps

      Reply
  27. I am testing out the remove bloat script and all of the HKCU pieces are not getting applied since the script is running as the system. Do I need to just separate those registry entries and run them as a separate script or am I not deploying the script correctly? I am deploying as a 64bit script and its set to use system instead of users credentials.

    I am fine with creating a separate script for the HKCU portions but thought I pose the question first.

    Reply
  28. Further note, this is on existing devices where its being run after the fact, not during the OOBE process. But it will also be set to run on devices as they autopilot going forward.

    Reply
  29. Didn’t know if anything could be added to remove the Microsoft feed part in the task bar. Thank you a million times for having this available!!

    Reply
  30. Thanks for the effort. The script works perfectly. It is exactly what we were looking for to remove the Windows bloatware, but also Dell’s. 🙂

    Reply
  31. Hi Andrew.
    This is extremely interesting. I stumbled upon your site and have read through almost all the messages.
    I was actually after a bloatfree version of Windows as I purchased a mini pc with windows 10 image loaded.
    It just has so much rubbish pre-installed. I quite obviously am not running in a corporate network so Intune is not an option and group policy is not applicable.
    The idea was to just get rid of unwanted apps and junk as the mini is used for streaming and wanting to optimize it for best performance.
    Nice work.

    Reply

Leave a Comment