Debloat-Windows-10
A Collection of Scripts Which Disable / Remove Windows 10 Features and Apps
Top Related Projects
Script to remove Windows 10 bloatware.
:zap: The most powerful PowerShell module for fine-tuning Windows
This is the Ultimate Windows 10 Script from a creation from multiple debloat scripts and gists from github.
PowerShell script for automation of routine tasks done after fresh installations of Windows 10 / Server 2016 / Server 2019
☑️🌠 Remove Bloatwares from Windows 10
The finest Windows Optimizer
Quick Overview
Debloat-Windows-10 is a collection of PowerShell scripts designed to remove unnecessary features, services, and applications from Windows 10. It aims to improve system performance, reduce telemetry, and enhance privacy by disabling or removing various built-in Windows components.
Pros
- Improves system performance by removing bloatware and unnecessary services
- Enhances privacy by disabling telemetry and data collection features
- Customizable, allowing users to choose which scripts to run based on their needs
- Open-source and community-driven, with regular updates and contributions
Cons
- May break certain Windows features or applications if used incorrectly
- Requires some technical knowledge to understand and implement safely
- Can be difficult to reverse changes if problems occur
- May need to be re-applied after major Windows updates
Getting Started
-
Clone the repository:
git clone https://github.com/W4RH4WK/Debloat-Windows-10.git
-
Open PowerShell as Administrator
-
Navigate to the cloned repository folder:
cd Debloat-Windows-10
-
Set the execution policy to allow running scripts:
Set-ExecutionPolicy Unrestricted -Scope CurrentUser
-
Run desired scripts, for example:
.\scripts\remove-default-apps.ps1 .\scripts\disable-services.ps1 .\scripts\optimize-user-interface.ps1
-
Restart your computer to apply changes
Note: Always review scripts before running them and create a system restore point or backup before making significant changes to your system.
Competitor Comparisons
Script to remove Windows 10 bloatware.
Pros of Windows10Debloater
- Offers a user-friendly GUI for easier debloating
- Provides more customization options and granular control
- Actively maintained with frequent updates
Cons of Windows10Debloater
- May be overly aggressive in removing features for some users
- Potential for unintended consequences due to extensive modifications
- Larger codebase, which can be more complex to understand and modify
Code Comparison
Windows10Debloater:
Function DebloatBlacklist {
$Bloatware = @(
"Microsoft.BingWeather"
"Microsoft.GetHelp"
"Microsoft.Getstarted"
# ... more entries
)
foreach ($Bloat in $Bloatware) {
Get-AppxPackage -Name $Bloat| Remove-AppxPackage
Get-AppxProvisionedPackage -Online | Where-Object DisplayName -like $Bloat | Remove-AppxProvisionedPackage -Online
}
}
Debloat-Windows-10:
Get-AppxPackage -AllUsers |
Where-Object {$_.Name -NotLike "*Store*"} |
Remove-AppxPackage
Get-AppxProvisionedPackage -Online |
Where-Object {$_.DisplayName -NotLike "*Store*"} |
Remove-AppxProvisionedPackage -Online
Both projects aim to debloat Windows 10, but Windows10Debloater offers more features and customization, while Debloat-Windows-10 takes a simpler, more straightforward approach. The choice between them depends on user preferences and technical expertise.
:zap: The most powerful PowerShell module for fine-tuning Windows
Pros of Sophia-Script-for-Windows
- More comprehensive and regularly updated, covering a wider range of Windows 10/11 tweaks
- Offers a graphical user interface (GUI) for easier use by non-technical users
- Provides more granular control over individual settings and features
Cons of Sophia-Script-for-Windows
- More complex and potentially overwhelming for beginners
- Requires PowerShell 5.1 or higher, which may not be available on all systems
- Some features may be overkill for users seeking basic debloating
Code Comparison
Debloat-Windows-10:
Get-AppxPackage -AllUsers | Remove-AppxPackage
Get-AppxProvisionedPackage -Online | Remove-AppxProvisionedPackage -Online
Sophia-Script-for-Windows:
if (-not (Get-AppxPackage -Name Microsoft.WindowsCalculator))
{
Add-AppxPackage -DisableDevelopmentMode -Register $($(Get-AppxPackage -AllUsers Microsoft.WindowsCalculator).InstallLocation + '\AppxManifest.xml')
}
The Debloat-Windows-10 script uses a more aggressive approach, removing all AppX packages, while Sophia-Script-for-Windows provides more nuanced control, allowing users to selectively remove or reinstall specific packages.
This is the Ultimate Windows 10 Script from a creation from multiple debloat scripts and gists from github.
Pros of win10script
- More comprehensive and feature-rich, offering additional functionality beyond debloating
- Actively maintained with frequent updates and community contributions
- Includes a GUI option for easier use by less technical users
Cons of win10script
- More complex and potentially overwhelming for users seeking a simple debloating solution
- May make more aggressive changes to the system, which could lead to unintended consequences
- Larger codebase, which may be harder to audit for security-conscious users
Code Comparison
Debloat-Windows-10:
Get-AppxPackage -AllUsers | Where-Object {$_.Name -notlike "*Store*"} | Remove-AppxPackage
win10script:
If ($Bloatware -contains $App.Name) {
$App | Remove-AppxPackage
Write-Output "Removing $($App.Name)"
}
The Debloat-Windows-10 script uses a more straightforward approach to remove all non-Store apps, while win10script employs a more selective method, checking against a predefined list of bloatware before removal.
Both scripts aim to debloat Windows 10, but win10script offers a more customizable and feature-rich experience at the cost of increased complexity. Debloat-Windows-10 provides a simpler, more focused approach to removing unwanted applications. Users should choose based on their technical expertise and specific needs.
PowerShell script for automation of routine tasks done after fresh installations of Windows 10 / Server 2016 / Server 2019
Pros of Win10-Initial-Setup-Script
- More comprehensive and customizable, with over 200 tweaks and settings
- Actively maintained with regular updates and bug fixes
- Includes a graphical interface option for easier configuration
Cons of Win10-Initial-Setup-Script
- May be overwhelming for novice users due to the large number of options
- Some tweaks might have unintended consequences if not carefully selected
- Requires more time to review and configure before running
Code Comparison
Debloat-Windows-10:
Get-AppxPackage -AllUsers | Remove-AppxPackage
Get-AppxProvisionedPackage -Online | Remove-AppxProvisionedPackage -Online
Win10-Initial-Setup-Script:
Function UninstallUWPApps {
$UWPApps = @(
"Microsoft.3DBuilder"
"Microsoft.BingWeather"
# ... (more apps listed)
)
ForEach ($UWPApp in $UWPApps) {
Get-AppxPackage -Name $UWPApp | Remove-AppxPackage
}
}
The Debloat-Windows-10 script uses a more aggressive approach, removing all UWP apps, while Win10-Initial-Setup-Script provides a more granular control over which apps to remove. This exemplifies the difference in customization levels between the two projects.
☑️🌠 Remove Bloatwares from Windows 10
Pros of bloatbox
- User-friendly graphical interface for easier navigation and operation
- Regularly updated with new features and improvements
- Includes additional tools like a startup manager and system tweaks
Cons of bloatbox
- Less customizable than Debloat-Windows-10's script-based approach
- May not be as thorough in removing all bloatware components
- Requires installation, unlike Debloat-Windows-10's portable scripts
Code Comparison
Debloat-Windows-10 (PowerShell):
Get-AppxPackage -AllUsers | Where-Object {$_.Name -notlike "*Store*"} | Remove-AppxPackage
Get-AppxProvisionedPackage -Online | Where-Object {$_.PackageName -notlike "*Store*"} | Remove-AppxProvisionedPackage -Online
bloatbox (C#):
private void RemoveApp(string packageFullName)
{
PowerShell.Create().AddScript($"Get-AppxPackage '{packageFullName}' | Remove-AppxPackage").Invoke();
}
Both projects aim to debloat Windows 10, but they take different approaches. Debloat-Windows-10 uses PowerShell scripts for direct system modifications, while bloatbox provides a GUI wrapper around similar functionality. The code snippets show how each project handles app removal, with Debloat-Windows-10 using a more comprehensive approach and bloatbox focusing on individual app removal through a user-friendly interface.
The finest Windows Optimizer
Pros of Optimizer
- User-friendly graphical interface for easy navigation and customization
- Regularly updated with new features and compatibility for recent Windows versions
- Includes additional tools like cleaning temporary files and managing startup programs
Cons of Optimizer
- Less granular control over individual tweaks compared to Debloat-Windows-10
- May include some unnecessary features for advanced users who prefer a minimalist approach
- Closed-source nature limits community contributions and auditing
Code Comparison
Debloat-Windows-10 uses PowerShell scripts for its operations:
Get-AppxPackage -AllUsers | Remove-AppxPackage
Get-AppxProvisionedPackage -Online | Remove-AppxProvisionedPackage -Online
Optimizer, being a C# application, uses a different approach:
public static void DisableWindowsDefender()
{
Utilities.RunCommand("sc stop WinDefend");
Utilities.RunCommand("sc config WinDefend start=disabled");
}
Both repositories aim to improve Windows performance and privacy, but they differ in their implementation and target audience. Debloat-Windows-10 is more suitable for advanced users who prefer script-based solutions and want fine-grained control. Optimizer caters to a broader audience with its GUI and additional features, making it more accessible for less technical users.
Convert
designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual CopilotREADME
Debloat Windows 10
ATTENTION! Apparently there is an issue where running the scripts results in a broken user account / system. So far, there is only little information what actually causes this. See the corresponding issue.
Note about Windows 11: This project does not directly support Windows 11. Things might work, or might not work - find out if you are brave. Do not expect this project to transition to Windows 11 as the maintainer lacks the time to do so.
This project collects PowerShell scripts which help to debloat Windows 10, tweak common settings and install basic software components.
I test these scripts on a Windows 10 Professional 64-Bit (English) virtual machine. Please let me know if you encounter any issues. Home Edition and different languages are not supported. These scripts are intended for tech-savvy administrators, who know what they are doing and just want to automate this phase of their setup. If this profile does not fit you, I recommend using a different (more interactive) tool -- and there are a lot of them out there.
Also, note that gaming-related apps and services will be removed/disabled. If you intend to use your system for gaming, adjust the scripts accordingly.
There is no undo, I recommend only using these scripts on a fresh installation (including Windows Updates). Test everything after running them before doing anything else. Also, there is no guarantee that everything will work after future updates since I cannot predict what Microsoft will do next.
Translations
Interactivity
The scripts are designed to run without any user interaction. Modify them beforehand. If you want a more interactive approach check out DisableWinTracking from 10se1ucgo.
Download Latest Version
Code located in the master
branch is always considered under development, but
you'll probably want the most recent version anyway.
Execution
Enable execution of PowerShell scripts:
PS> Set-ExecutionPolicy Unrestricted -Scope CurrentUser
Unblock PowerShell scripts and modules within this directory:
PS> ls -Recurse *.ps*1 | Unblock-File
Usage
Scripts can be run individually, pick what you need.
- Install all available updates for your system.
- Edit the scripts to fit your need.
- Run the scripts you want to apply from a PowerShell with administrator privileges (Explorer
Files > Open Windows PowerShell > Open Windows PowerShell as administrator
) PS > Restart-Computer
- Run
disable-windows-defender.ps1
one more time if you ran it in step 3 PS > Restart-Computer
Start menu
In the past I included small fixes to make the start menu more usable, like removing default tiles, disabling web search and so on. This is no longer the case since I am fed up with it. This fucking menu breaks for apparently no reason, is slow, is a pain to configure / script and even shows ads out of the box!
Please replace it with something better, either use Open Shell or Start is Back, but stop using that shit.
Known Issues
Start menu Search
After running the scripts, the start menu search-box may no longer work on newly created accounts. It seems like there is an issue with account initialization that is triggered when disabling the GeoLocation service. Following workaround has been discovered by BK from Atlanta:
- Delete registry key
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\lfsvc\TriggerInfo\3
- Re-enable GeoLocation service (set startup type to
Automatic
) - Reboot
- Login with the account having the stated issue
- Start Cortana and set your preferences accordingly (web search and whatnot)
You may now disable the GeoLocation service again, the search box should remain functional.
Sysprep will hang
If you are deploying images with MDT and running these scripts, the sysprep
step will hang unless dmwappushservice
is active.
Xbox Wireless Adapter
Apparently running the stock remove-default-apps
script will cause Xbox
Wireless Adapters to stop functioning. I suspect one should not remove the Xbox
App when wanting to use one. But I haven't confirmed this yet, and there is a
workaround to re-enable it afterwards. See
#78.
Issues with Skype
Some of the domains blocked by adding them to the hosts-file are required for Skype. I highly discourage using Skype, however some people may not have the option to use an alternative. See the #79.
Fingerprint Reader / Facial Detection not Working
Ensure Windows Biometric Service is running. See #189.
Liability
All scripts are provided as-is and you use them at your own risk.
Contribute
I would be happy to extend the collection of scripts. Just open an issue or send me a pull request.
Thanks To
License
"THE BEER-WARE LICENSE" (Revision 42):
As long as you retain this notice you can do whatever you want with this
stuff. If we meet someday, and you think this stuff is worth it, you can
buy us a beer in return.
This project is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE.
Top Related Projects
Script to remove Windows 10 bloatware.
:zap: The most powerful PowerShell module for fine-tuning Windows
This is the Ultimate Windows 10 Script from a creation from multiple debloat scripts and gists from github.
PowerShell script for automation of routine tasks done after fresh installations of Windows 10 / Server 2016 / Server 2019
☑️🌠 Remove Bloatwares from Windows 10
The finest Windows Optimizer
Convert
designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual Copilot