mirror of
https://github.com/Raphire/Win11Debloat.git
synced 2025-11-17 19:16:26 +00:00
Added new options for creating a CustomAppsList, and for removing apps from the CustomAppsList.
New parameters: -RemoveAppsCustom -RunAppConfigurator Additionally: - Cleaned up script - Added additional information and instructions to README.md
This commit is contained in:
20
README.md
20
README.md
@@ -1,6 +1,6 @@
|
|||||||
# Win11Debloat
|
# Win11Debloat
|
||||||
|
|
||||||
Win11Debloat is a simple and lightweight powershell script that removes pre-installed Windows bloatware apps, disables telemetry and declutters the experience by disabling or removing intrusive interface elements, ads and more. No need to painstakingly go through all the settings yourself, or remove apps one by one. Win11Debloat makes the process quick and easy!
|
Win11Debloat is a simple, easy to use and lightweight powershell script that can remove pre-installed Windows bloatware apps, disable telemetry and declutter the experience by disabling or removing intrusive interface elements, ads and more. No need to painstakingly go through all the settings yourself, or remove apps one by one. Win11Debloat makes the process quick and easy!
|
||||||
|
|
||||||
You can pick and choose exactly which modifications you want the script to make, or use the default settings. If you are unhappy with any of the changes you can easily revert them by using the registry files that are included in the 'Regfiles' folder, all of the apps that are removed can be reinstalled from the Microsoft store.
|
You can pick and choose exactly which modifications you want the script to make, or use the default settings. If you are unhappy with any of the changes you can easily revert them by using the registry files that are included in the 'Regfiles' folder, all of the apps that are removed can be reinstalled from the Microsoft store.
|
||||||
|
|
||||||
@@ -10,9 +10,11 @@ You can pick and choose exactly which modifications you want the script to make,
|
|||||||
|
|
||||||
## Features
|
## Features
|
||||||
|
|
||||||
|
Win11Debloat has many options, but not all of these options are executed when running the script with the default settings. Select 'Custom mode' in the script menu if you want more granular control over the script or if you want to access all of Win11Debloat's features.
|
||||||
|
|
||||||
### Default Settings
|
### Default Settings
|
||||||
|
|
||||||
- Remove the default selection of bloatware apps from [this list](#apps-that-are-removed).
|
- Remove the default selection of bloatware apps from [this list](#apps-that-are-removed-by-default).
|
||||||
- Disable telemetry, diagnostic data, app-launch tracking & targeted ads.
|
- Disable telemetry, diagnostic data, app-launch tracking & targeted ads.
|
||||||
- Disable & remove bing search & cortana in Windows search.
|
- Disable & remove bing search & cortana in Windows search.
|
||||||
- Disable tips, tricks, suggestions and ads in start, settings, notifications, Windows explorer, and on the lockscreen.
|
- Disable tips, tricks, suggestions and ads in start, settings, notifications, Windows explorer, and on the lockscreen.
|
||||||
@@ -45,7 +47,7 @@ You can pick and choose exactly which modifications you want the script to make,
|
|||||||
<br/>
|
<br/>
|
||||||
|
|
||||||
> [!TIP]
|
> [!TIP]
|
||||||
> In 'custom mode' you can specify exactly which apps you like to remove and which you want to keep!
|
> In 'custom mode' you can select exactly which apps to remove and which you want to keep!
|
||||||
|
|
||||||
### Apps that ARE removed by default
|
### Apps that ARE removed by default
|
||||||
|
|
||||||
@@ -191,7 +193,7 @@ You can pick and choose exactly which modifications you want the script to make,
|
|||||||
## Usage
|
## Usage
|
||||||
|
|
||||||
> [!Warning]
|
> [!Warning]
|
||||||
> Great care went into making sure this script does not break any OS functionality, but use at your own risk!
|
> Great care went into making sure this script does not unintentionally break any OS functionality, but use at your own risk!
|
||||||
|
|
||||||
### Easy method
|
### Easy method
|
||||||
|
|
||||||
@@ -202,7 +204,7 @@ You can pick and choose exactly which modifications you want the script to make,
|
|||||||
5. A new powershell window will now open, showing the Win11Debloat menu. Select either the default or custom mode to continue.
|
5. A new powershell window will now open, showing the Win11Debloat menu. Select either the default or custom mode to continue.
|
||||||
6. Carefully read through and follow the on-screen instructions.
|
6. Carefully read through and follow the on-screen instructions.
|
||||||
|
|
||||||
After making the selected changes the Win11Debloat script will restart the Windows Explorer process to properly apply them. If Windows Explorer does not recover after running the script and your desktop stays black, don't worry. Just press Ctrl + Alt + Del to restart your PC.
|
After making the selected changes the Win11Debloat script will restart the Windows Explorer process to properly apply them. If Windows Explorer does not recover after running the script and your desktop stays black, don't worry. Just press Ctrl + Alt + Del and restart your PC.
|
||||||
|
|
||||||
### Advanced method
|
### Advanced method
|
||||||
|
|
||||||
@@ -215,13 +217,17 @@ This method gives you the option to run the script with certain parameters to ta
|
|||||||
5. Enter this into powershell to run the script: `.\Win11Debloat.ps1`
|
5. Enter this into powershell to run the script: `.\Win11Debloat.ps1`
|
||||||
6. The Win11Debloat menu will now open. Select either the default or custom setup to continue.
|
6. The Win11Debloat menu will now open. Select either the default or custom setup to continue.
|
||||||
|
|
||||||
To run the script without any user input, simply add parameters at the end, example: `.\Win11Debloat.ps1 -RemoveApps -DisableBing -Silent`
|
To run the script with parameters simply execute the script as explained above, but add the parameters at the end with spaces in between. Example: `.\Win11Debloat.ps1 -RemoveApps -DisableBing -Silent`
|
||||||
|
|
||||||
|
A full list of parameters and what they do can be found below.
|
||||||
|
|
||||||
| Parameter | Description |
|
| Parameter | Description |
|
||||||
| :-------: | ----------- |
|
| :-------: | ----------- |
|
||||||
| -Silent | Suppresses all interactive prompts, so the script will run without requiring any user input. |
|
| -Silent | Suppresses all interactive prompts, so the script will run without requiring any user input. |
|
||||||
| -RunDefaults | Run the script with the default settings. |
|
| -RunDefaults | Run the script with the default settings. |
|
||||||
| -RemoveApps | Remove all bloatware apps from [this list](#apps-that-are-removed). |
|
| -RemoveApps | Remove all bloatware apps from [this list](#apps-that-are-removed-by-default). |
|
||||||
|
| -RemoveAppsCustom | Remove all apps from the 'CustomAppsList' file. IMPORTANT: Run the script with the `-RunAppConfigurator` parameter to create this file first. No apps will be removed if this file does not exist! |
|
||||||
|
| -RunAppConfigurator | Run the app configurator to create a 'CustomAppsList' file. Run the script with the `-RemoveAppsCustom` parameter to remove these apps. |
|
||||||
| -RemoveCommApps | Remove the Mail, Calender, and People apps. |
|
| -RemoveCommApps | Remove the Mail, Calender, and People apps. |
|
||||||
| -RemoveW11Outlook | Remove the new Outlook for Windows app. |
|
| -RemoveW11Outlook | Remove the new Outlook for Windows app. |
|
||||||
| -RemoveDevApps | Remove developer-related apps such as Remote Desktop, DevHome and Power Automate. |
|
| -RemoveDevApps | Remove developer-related apps such as Remote Desktop, DevHome and Power Automate. |
|
||||||
|
|||||||
107
Win11Debloat.ps1
107
Win11Debloat.ps1
@@ -2,49 +2,38 @@
|
|||||||
|
|
||||||
[CmdletBinding(SupportsShouldProcess)]
|
[CmdletBinding(SupportsShouldProcess)]
|
||||||
param (
|
param (
|
||||||
[Parameter(ValueFromPipeline = $true)][switch]$Silent,
|
[switch]$Silent,
|
||||||
[Parameter(ValueFromPipeline = $true)][switch]$RunDefaults,
|
[switch]$RunAppConfigurator,
|
||||||
[Parameter(ValueFromPipeline = $true)][switch]$RunWin11Defaults,
|
[switch]$RunDefaults, [switch]$RunWin11Defaults,
|
||||||
[Parameter(ValueFromPipeline = $true)][switch]$RemoveApps,
|
[switch]$RemoveApps,
|
||||||
[Parameter(ValueFromPipeline = $true)][switch]$RemoveGamingApps,
|
[switch]$RemoveAppsCustom,
|
||||||
[Parameter(ValueFromPipeline = $true)][switch]$RemoveCommApps,
|
[switch]$RemoveGamingApps,
|
||||||
[Parameter(ValueFromPipeline = $true)][switch]$RemoveDevApps,
|
[switch]$RemoveCommApps,
|
||||||
[Parameter(ValueFromPipeline = $true)][switch]$RemoveW11Outlook,
|
[switch]$RemoveDevApps,
|
||||||
[Parameter(ValueFromPipeline = $true)][switch]$DisableTelemetry,
|
[switch]$RemoveW11Outlook,
|
||||||
[Parameter(ValueFromPipeline = $true)][switch]$DisableBingSearches,
|
[switch]$DisableTelemetry,
|
||||||
[Parameter(ValueFromPipeline = $true)][switch]$DisableBing,
|
[switch]$DisableBingSearches, [switch]$DisableBing,
|
||||||
[Parameter(ValueFromPipeline = $true)][switch]$DisableLockscrTips,
|
[switch]$DisableLockscrTips, [switch]$DisableLockscreenTips,
|
||||||
[Parameter(ValueFromPipeline = $true)][switch]$DisableLockscreenTips,
|
[switch]$DisableWindowsSuggestions, [switch]$DisableSuggestions,
|
||||||
[Parameter(ValueFromPipeline = $true)][switch]$DisableWindowsSuggestions,
|
[switch]$ShowHiddenFolders,
|
||||||
[Parameter(ValueFromPipeline = $true)][switch]$DisableSuggestions,
|
[switch]$ShowKnownFileExt,
|
||||||
[Parameter(ValueFromPipeline = $true)][switch]$ShowHiddenFolders,
|
[switch]$HideDupliDrive,
|
||||||
[Parameter(ValueFromPipeline = $true)][switch]$ShowKnownFileExt,
|
[switch]$TaskbarAlignLeft,
|
||||||
[Parameter(ValueFromPipeline = $true)][switch]$HideDupliDrive,
|
[switch]$HideSearchTb, [switch]$ShowSearchIconTb, [switch]$ShowSearchLabelTb, [switch]$ShowSearchBoxTb,
|
||||||
[Parameter(ValueFromPipeline = $true)][switch]$TaskbarAlignLeft,
|
[switch]$HideTaskview,
|
||||||
[Parameter(ValueFromPipeline = $true)][switch]$HideSearchTb,
|
[switch]$DisableCopilot,
|
||||||
[Parameter(ValueFromPipeline = $true)][switch]$ShowSearchIconTb,
|
[switch]$DisableWidgets,
|
||||||
[Parameter(ValueFromPipeline = $true)][switch]$ShowSearchLabelTb,
|
[switch]$HideWidgets,
|
||||||
[Parameter(ValueFromPipeline = $true)][switch]$ShowSearchBoxTb,
|
[switch]$DisableChat,
|
||||||
[Parameter(ValueFromPipeline = $true)][switch]$HideTaskview,
|
[switch]$HideChat,
|
||||||
[Parameter(ValueFromPipeline = $true)][switch]$DisableCopilot,
|
[switch]$ClearStart,
|
||||||
[Parameter(ValueFromPipeline = $true)][switch]$DisableWidgets,
|
[switch]$RevertContextMenu,
|
||||||
[Parameter(ValueFromPipeline = $true)][switch]$HideWidgets,
|
[switch]$DisableOnedrive, [switch]$HideOnedrive,
|
||||||
[Parameter(ValueFromPipeline = $true)][switch]$DisableChat,
|
[switch]$Disable3dObjects, [switch]$Hide3dObjects,
|
||||||
[Parameter(ValueFromPipeline = $true)][switch]$HideChat,
|
[switch]$DisableMusic, [switch]$HideMusic,
|
||||||
[Parameter(ValueFromPipeline = $true)][switch]$ClearStart,
|
[switch]$DisableIncludeInLibrary, [switch]$HideIncludeInLibrary,
|
||||||
[Parameter(ValueFromPipeline = $true)][switch]$RevertContextMenu,
|
[switch]$DisableGiveAccessTo, [switch]$HideGiveAccessTo,
|
||||||
[Parameter(ValueFromPipeline = $true)][switch]$DisableOnedrive,
|
[switch]$DisableShare, [switch]$HideShare
|
||||||
[Parameter(ValueFromPipeline = $true)][switch]$HideOnedrive,
|
|
||||||
[Parameter(ValueFromPipeline = $true)][switch]$Disable3dObjects,
|
|
||||||
[Parameter(ValueFromPipeline = $true)][switch]$Hide3dObjects,
|
|
||||||
[Parameter(ValueFromPipeline = $true)][switch]$DisableMusic,
|
|
||||||
[Parameter(ValueFromPipeline = $true)][switch]$HideMusic,
|
|
||||||
[Parameter(ValueFromPipeline = $true)][switch]$DisableIncludeInLibrary,
|
|
||||||
[Parameter(ValueFromPipeline = $true)][switch]$HideIncludeInLibrary,
|
|
||||||
[Parameter(ValueFromPipeline = $true)][switch]$DisableGiveAccessTo,
|
|
||||||
[Parameter(ValueFromPipeline = $true)][switch]$HideGiveAccessTo,
|
|
||||||
[Parameter(ValueFromPipeline = $true)][switch]$DisableShare,
|
|
||||||
[Parameter(ValueFromPipeline = $true)][switch]$HideShare
|
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
@@ -432,6 +421,32 @@ if ((Test-Path "$PSScriptRoot/LastSettings") -and ([String]::IsNullOrWhiteSpace(
|
|||||||
Remove-Item -Path "$PSScriptRoot/LastSettings" -recurse
|
Remove-Item -Path "$PSScriptRoot/LastSettings" -recurse
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# Only run the app selection form if the 'RunAppConfigurator' parameter was passed to the script
|
||||||
|
if($RunAppConfigurator) {
|
||||||
|
$result = ShowAppSelectionForm
|
||||||
|
|
||||||
|
PrintHeader "App Configurator"
|
||||||
|
|
||||||
|
# Show different message based on whether the app selection was saved or cancelled
|
||||||
|
if($result -ne [System.Windows.Forms.DialogResult]::OK) {
|
||||||
|
Write-Host "App configurator was closed without saving." -ForegroundColor Red
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
Write-Output "Your app selection was saved to the 'CustomAppsList' file in the root folder of the script."
|
||||||
|
}
|
||||||
|
|
||||||
|
Write-Output ""
|
||||||
|
|
||||||
|
# Suppress prompt if Silent parameter was passed
|
||||||
|
if (-not $Silent) {
|
||||||
|
Write-Output "Press any key to exit..."
|
||||||
|
$null = $Host.UI.RawUI.ReadKey("NoEcho,IncludeKeyDown")
|
||||||
|
}
|
||||||
|
|
||||||
|
# Exit script
|
||||||
|
Exit
|
||||||
|
}
|
||||||
|
|
||||||
# Change script execution based on provided parameters or user input
|
# Change script execution based on provided parameters or user input
|
||||||
if ((-not $global:Params.Count) -or $RunDefaults -or $RunWin11Defaults -or ($SPParamCount -eq $global:Params.Count)) {
|
if ((-not $global:Params.Count) -or $RunDefaults -or $RunWin11Defaults -or ($SPParamCount -eq $global:Params.Count)) {
|
||||||
if ($RunDefaults -or $RunWin11Defaults) {
|
if ($RunDefaults -or $RunWin11Defaults) {
|
||||||
@@ -507,7 +522,7 @@ if ((-not $global:Params.Count) -or $RunDefaults -or $RunWin11Defaults -or ($SPP
|
|||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
# Apps file does not exist, print error and continue to next item
|
# Apps file does not exist, print error and continue to next item
|
||||||
Write-Host "Could not load apps from file, no apps will be removed" -ForegroundColor Red
|
Write-Host "Could not load custom apps list from file, no apps will be removed!" -ForegroundColor Red
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -565,7 +580,7 @@ if ((-not $global:Params.Count) -or $RunDefaults -or $RunWin11Defaults -or ($SPP
|
|||||||
Write-Host " (n) Don't remove any apps" -ForegroundColor Yellow
|
Write-Host " (n) Don't remove any apps" -ForegroundColor Yellow
|
||||||
Write-Host " (1) Only remove the default selection of bloatware apps from 'Appslist.txt'" -ForegroundColor Yellow
|
Write-Host " (1) Only remove the default selection of bloatware apps from 'Appslist.txt'" -ForegroundColor Yellow
|
||||||
Write-Host " (2) Remove default selection of bloatware apps, aswell as mail & calendar apps, developer apps and gaming apps" -ForegroundColor Yellow
|
Write-Host " (2) Remove default selection of bloatware apps, aswell as mail & calendar apps, developer apps and gaming apps" -ForegroundColor Yellow
|
||||||
Write-Host " (3) Specify which apps to remove and which to keep" -ForegroundColor Yellow
|
Write-Host " (3) Select which apps to remove and which to keep" -ForegroundColor Yellow
|
||||||
$RemoveCommAppInput = Read-Host "Remove any pre-installed apps? (n/1/2/3)"
|
$RemoveCommAppInput = Read-Host "Remove any pre-installed apps? (n/1/2/3)"
|
||||||
|
|
||||||
# Show app selection form if user entered option 3
|
# Show app selection form if user entered option 3
|
||||||
@@ -843,7 +858,7 @@ else {
|
|||||||
RemoveSpecificApps $appsList
|
RemoveSpecificApps $appsList
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
Write-Host "> Unable to find CustomAppsList file, no apps have been removed!" -ForegroundColor Red
|
Write-Host "> Could not load custom apps list from file, no apps were removed!" -ForegroundColor Red
|
||||||
}
|
}
|
||||||
|
|
||||||
Write-Output ""
|
Write-Output ""
|
||||||
|
|||||||
Reference in New Issue
Block a user