From 4e4bf0d553343b87fc4d11ad497754cf530b13d4 Mon Sep 17 00:00:00 2001 From: Raphire <9938813+Raphire@users.noreply.github.com> Date: Sat, 13 Sep 2025 23:36:38 +0200 Subject: [PATCH] Added option to not remove any apps, or remove your custom selection of apps in Default mode --- Assets/Menus/DefaultSettings | 2 - Assets/Menus/Info | 2 +- Get.ps1 | 5 ++- README.md | 11 ++++- Win11Debloat.ps1 | 79 ++++++++++++++++++++++++++++++------ 5 files changed, 80 insertions(+), 19 deletions(-) diff --git a/Assets/Menus/DefaultSettings b/Assets/Menus/DefaultSettings index edf8474..9627bb4 100644 --- a/Assets/Menus/DefaultSettings +++ b/Assets/Menus/DefaultSettings @@ -1,5 +1,3 @@ -Win11Debloat will make the following changes: -- Remove the default selection of apps, the list can be found in the 'Appslist.txt' file. - Disable telemetry, diagnostic data, app-launch tracking & targeted ads. - Disable tips, tricks, suggestions and ads in start, settings, notifications and more. - Disable ads, suggestions and the MSN news feed in Microsoft Edge. diff --git a/Assets/Menus/Info b/Assets/Menus/Info index 58d1486..f33bb1b 100644 --- a/Assets/Menus/Info +++ b/Assets/Menus/Info @@ -62,7 +62,7 @@ Other Default mode ------------------------------------------------------------------------------------------- The default mode applies the changes that are recommended for most users. This includes: -- Remove the default selection of apps, the list can be found in the 'Appslist.txt' file. +- Remove the default selection or your custom selection of apps. - Disable telemetry, diagnostic data, app-launch tracking & targeted ads. - Disable tips, tricks, suggestions and ads in start, settings, notifications and more. - Disable ads, suggestions and the MSN news feed in Microsoft Edge. diff --git a/Get.ps1 b/Get.ps1 index 56f05c7..15070e7 100644 --- a/Get.ps1 +++ b/Get.ps1 @@ -6,7 +6,8 @@ param ( [string]$User, [switch]$CreateRestorePoint, [switch]$RunAppsListGenerator, [switch]$RunAppConfigurator, - [switch]$RunDefaults, [switch]$RunWin11Defaults, + [switch]$RunDefaults, + [switch]$RunDefaultsLite, [switch]$RunSavedSettings, [switch]$RemoveApps, [switch]$RemoveAppsCustom, @@ -85,7 +86,7 @@ Write-Output "------------------------------------------------------------------ Write-Output "> Downloading Win11Debloat..." # Download latest version of Win11Debloat from github as zip archive -Invoke-RestMethod https://api.github.com/repos/Raphire/Win11Debloat/zipball/2025.09.08 -OutFile "$env:TEMP/win11debloat.zip" +Invoke-RestMethod https://api.github.com/repos/Raphire/Win11Debloat/zipball/2025.09.13 -OutFile "$env:TEMP/win11debloat.zip" # Remove old script folder if it exists, except for CustomAppsList and SavedSettings files if (Test-Path "$env:TEMP/Win11Debloat") { diff --git a/README.md b/README.md index cbf1d90..37efe66 100644 --- a/README.md +++ b/README.md @@ -157,14 +157,17 @@ Below is an overview of the key features and functionality offered by Win11Deblo ### Default Settings -Win11Debloat offers a default mode that allows you to quickly and easily apply the changes that are recommended for most people. This includes uninstalling apps that most would consider bloatware, removing many annoying distractions and disabling telemetry and tracking. To apply the default settings, launch the script as you normally would and select option `1` in the script menu. Alternatively, you can launch the script with the `-RunDefaults` parameter. Example: +Win11Debloat's default mode allows you to quickly and easily apply the changes that are recommended for most people. This includes removing many annoying distractions, disabling telemetry and tracking and optionally uninstalling the default or your custom selection of apps. To apply the default settings, launch the script as you normally would and select option `1` in the script menu. +Alternatively, you can launch the script with the `-RunDefaults` or `-RunDefaultsLite` parameters to immediately run the defaults without going through the menu or the app removal options. Using the `-RunDefaults` parameter will run the script in default mode and remove the default selection of apps. While using the `-RunDefaultsLite` parameter will run the script in default mode without removing any apps. + +Example: ```Powershell & ([scriptblock]::Create((irm "https://debloat.raphi.re/"))) -RunDefaults ``` #### Changes included in the default mode -- Remove the default selection of bloatware apps. (See below for full list) +- Remove the default or your custom selection of apps. (See below for the default selection of apps) - Disable telemetry, diagnostic data, activity history, app-launch tracking & targeted ads. - Disable tips, tricks, suggestions and ads in start, settings, notifications, File Explorer, and on the lockscreen. - Disable ads, suggestions and the MSN news feed in Microsoft Edge. @@ -180,6 +183,8 @@ Win11Debloat offers a default mode that allows you to quickly and easily apply t #### Apps that ARE removed as part of the default mode +These apps are uninstalled when you opt to remove the default selection of apps. This includes apps from both Microsoft and third parties. +
Click to expand
@@ -284,6 +289,8 @@ Win11Debloat offers a default mode that allows you to quickly and easily apply t #### Apps that are NOT removed as part of the default mode + These apps are not removed by default. They will only be removed if you manually select them. +
Click to expand
diff --git a/Win11Debloat.ps1 b/Win11Debloat.ps1 index 693950e..c26ffc0 100644 --- a/Win11Debloat.ps1 +++ b/Win11Debloat.ps1 @@ -8,7 +8,8 @@ param ( [string]$User, [switch]$CreateRestorePoint, [switch]$RunAppsListGenerator, [switch]$RunAppConfigurator, - [switch]$RunDefaults, [switch]$RunWin11Defaults, + [switch]$RunDefaults, + [switch]$RunDefaultsLite, [switch]$RunSavedSettings, [switch]$RemoveApps, [switch]$RemoveAppsCustom, @@ -798,12 +799,15 @@ function PrintHeader { function PrintFromFile { param ( $path, - $title + $title, + $printHeader = $true ) - Clear-Host + if ($printHeader) { + Clear-Host - PrintHeader $title + PrintHeader $title + } # Get & print script menu from file Foreach ($line in (Get-Content -Path $path )) { @@ -1423,8 +1427,8 @@ if ($RunAppConfigurator -or $RunAppsListGenerator) { } # Change script execution based on provided parameters or user input -if ((-not $script:Params.Count) -or $RunDefaults -or $RunWin11Defaults -or $RunSavedSettings -or ($SPParamCount -eq $script:Params.Count)) { - if ($RunDefaults -or $RunWin11Defaults) { +if ((-not $script:Params.Count) -or $RunDefaults -or $RunDefaultsLite -or $RunSavedSettings -or ($SPParamCount -eq $script:Params.Count)) { + if ($RunDefaults -or $RunDefaultsLite) { $Mode = '1' } elseif ($RunSavedSettings) { @@ -1481,13 +1485,64 @@ if ((-not $script:Params.Count) -or $RunDefaults -or $RunWin11Defaults -or $RunS '1' { # Show the default settings with confirmation, unless Silent parameter was passed if (-not $Silent) { - PrintFromFile "$PSScriptRoot/Assets/Menus/DefaultSettings" "Default Mode" + # Show options for app removal + if ((-not $RunDefaults) -and (-not $RunDefaultsLite)) { + PrintHeader 'Default Mode' + + Do { + Write-Host "Options:" -ForegroundColor Yellow + Write-Host " (n) Don't remove any apps" -ForegroundColor Yellow + Write-Host " (1) Only remove the default selection of bloatware apps" -ForegroundColor Yellow + Write-Host " (2) Manually select which apps to remove" -ForegroundColor Yellow + $RemoveAppsInput = Read-Host "Do you want to remove any apps? Apps will be removed for all users (n/1/2)" + + # Show app selection form if user entered option 3 + if ($RemoveAppsInput -eq '2') { + $result = ShowAppSelectionForm + + if ($result -ne [System.Windows.Forms.DialogResult]::OK) { + # User cancelled or closed app selection, show error and change RemoveAppsInput so the menu will be shown again + Write-Output "" + Write-Host "Cancelled application selection, please try again" -ForegroundColor Red + + $RemoveAppsInput = 'c' + } + + Write-Output "" + } + } + while ($RemoveAppsInput -ne 'n' -and $RemoveAppsInput -ne '0' -and $RemoveAppsInput -ne '1' -and $RemoveAppsInput -ne '2') + } elseif ($RunDefaultsLite) { + $RemoveAppsInput = '0' + } else { + $RemoveAppsInput = '1' + } + PrintHeader 'Default Mode' + + Write-Output "Win11Debloat will make the following changes:" + + # Select correct option based on user input + switch ($RemoveAppsInput) { + '1' { + $script:Params.Add('RemoveApps', $true) + + Write-Output "- Remove the default selection of apps." + } + '2' { + $script:Params.Add('RemoveAppsCustom', $true) + + Write-Output "- Remove your custom selection of $($script:SelectedApps.Count) apps." + } + } + + PrintFromFile "$PSScriptRoot/Assets/Menus/DefaultSettings" "Default Mode" $false + Write-Output "Press enter to execute the script or press CTRL+C to quit..." Read-Host | Out-Null } - $DefaultParameterNames = 'CreateRestorePoint','RemoveApps','DisableTelemetry','DisableBing','DisableLockscreenTips','DisableSuggestions','DisableEdgeAds','ShowKnownFileExt','DisableWidgets','HideChat','DisableCopilot','DisableFastStartup' + $DefaultParameterNames = 'CreateRestorePoint','DisableTelemetry','DisableBing','DisableLockscreenTips','DisableSuggestions','DisableEdgeAds','ShowKnownFileExt','DisableWidgets','HideChat','DisableFastStartup','DisableCopilot' PrintHeader 'Default Mode' @@ -1505,13 +1560,13 @@ if ((-not $script:Params.Count) -or $RunDefaults -or $RunWin11Defaults -or $RunS # Only add these options for Windows 11 users (build 22000+), if it doesn't already exist if ($WinVersion -ge 22000) { - if ($script:ModernStandbySupported -and (-not $script:Params.ContainsKey('DisableModernStandbyNetworking'))) { - $script:Params.Add('DisableModernStandbyNetworking', $true) - } - if (-not $script:Params.ContainsKey('DisableRecall')) { $script:Params.Add('DisableRecall', $true) } + + if ($script:ModernStandbySupported -and (-not $script:Params.ContainsKey('DisableModernStandbyNetworking'))) { + $script:Params.Add('DisableModernStandbyNetworking', $true) + } } }