diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..6c17e21
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1 @@
+LastSettings
diff --git a/GamingAppslist.txt b/GamingAppslist.txt
deleted file mode 100644
index 307db7b..0000000
--- a/GamingAppslist.txt
+++ /dev/null
@@ -1,7 +0,0 @@
-# The apps below this line will only be uninstalled if selected in custom mode or when launching
-# the script with the '-RemoveGamingApps' parameter. If you wish to KEEP any of the apps below
-# simply add a # character in front of the specific app in the list below.
-#
-*Microsoft.GamingApp* # Modern Xbox Gaming App, required for installing some PC games
-*Microsoft.XboxGameOverlay* # Game overlay, required/useful for some games
-*Microsoft.XboxGamingOverlay* # Game overlay, required/useful for some games
\ No newline at end of file
diff --git a/Menus/DefaultSettings.txt b/Menus/DefaultSettings
similarity index 100%
rename from Menus/DefaultSettings.txt
rename to Menus/DefaultSettings
diff --git a/Menus/Info.txt b/Menus/Info
similarity index 100%
rename from Menus/Info.txt
rename to Menus/Info
diff --git a/Menus/Menu.txt b/Menus/Menu
similarity index 76%
rename from Menus/Menu.txt
rename to Menus/Menu
index 7500785..21a2a21 100644
--- a/Menus/Menu.txt
+++ b/Menus/Menu
@@ -1,9 +1,5 @@
-------------------------------------------------------------------------------------------
Win11Debloat - Setup
-------------------------------------------------------------------------------------------
-(1) Run Win11Debloat with the default settings
+(1) Default mode: Run the script with the default settings
(2) Custom mode: Manually select what changes you want Win11Debloat to make
-
-(0) Show information about the script
-
-
diff --git a/README.md b/README.md
index c1b9867..298b8c3 100644
--- a/README.md
+++ b/README.md
@@ -10,7 +10,8 @@ You can pick and choose exactly which modifications you want the script to make,
## Features
-### The Default Settings Will:
+### Default Settings
+
- Remove all bloatware apps from [this list](#apps-that-are-removed).
- Disable telemetry, diagnostic data, app-launch tracking & targeted ads.
- Disable bing search & cortana in windows search.
@@ -21,7 +22,8 @@ You can pick and choose exactly which modifications you want the script to make,
- Hide the Chat (meet now) icon from the taskbar.
- Hide the 3D objects folder under 'This pc' in windows explorer. (Windows 10 only)
-### Alternatively Custom Mode Will Allow You To:
+### All Features
+
- Remove all bloatware apps from [this list](#apps-that-are-removed) and optionally also remove communication and gaming-related apps.
- Remove all pinned apps from the start menu. NOTE: This applies to all existing and new users. (Windows 11 only)
- Disable telemetry, diagnostic data, app-launch tracking & targeted ads.
@@ -43,9 +45,10 @@ You can pick and choose exactly which modifications you want the script to make,
> [!TIP]
-> You can change what apps are and aren't removed by editing the ['Appslist.txt'](https://github.com/Raphire/Win11Debloat/blob/master/Appslist.txt) and ['GamingAppslist.txt'](https://github.com/Raphire/Win11Debloat/blob/master/GamingAppslist.txt) files.
+> You can change what apps are and aren't removed by editing the ['Appslist.txt'](https://github.com/Raphire/Win11Debloat/blob/master/Appslist.txt) files.
### Apps that ARE removed
+
Click to expand
@@ -142,6 +145,7 @@ You can pick and choose exactly which modifications you want the script to make,
### Apps that are NOT removed
+
Click to expand
@@ -181,7 +185,7 @@ You can pick and choose exactly which modifications you want the script to make,
## Usage
> [!Warning]
-> Great care went into making sure this script does not break any OS functionality, but use this script at your own risk!
+> Great care went into making sure this script does not break any OS functionality, but use at your own risk!
### Easy method
@@ -190,7 +194,7 @@ You can pick and choose exactly which modifications you want the script to make,
3. Double click the 'Run.bat' file to start the script. Note: If the console window immediately closes and nothing happens, try the advanced method below.
4. Accept the windows UAC prompt to run the script as administrator, this is required for the script to function.
5. A new powershell window will now open, showing the Win11Debloat menu. Select either the default or custom setup 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.
@@ -230,7 +234,7 @@ To run the script without any user input, simply add parameters at the end, exam
| -ShowSearchLabelTb | Show search icon with label on the taskbar. (Windows 11 only) |
| -ShowSearchBoxTb | Show search box on the taskbar. (Windows 11 only) |
| -HideTaskview | Hide the taskview button from the taskbar. (Windows 11 only) |
-| -DisableCopilot | Disable Windows copilot (Windows 11 only) |
+| -DisableCopilot | Disable Windows copilot. (Windows 11 only) |
| -DisableWidgets | Disable the widget service & hide the widget (news and interests) icon from the taskbar. |
| -HideChat | Hide the chat (meet now) icon from the taskbar. |
| -HideOnedrive | Hide the onedrive folder in the windows explorer sidepanel. (Windows 10 only) |
@@ -239,7 +243,3 @@ To run the script without any user input, simply add parameters at the end, exam
| -HideIncludeInLibrary | Hide the 'Include in library' option in the context menu. (Windows 10 only) |
| -HideGiveAccessTo | Hide the 'Give access to' option in the context menu. (Windows 10 only) |
| -HideShare | Hide the 'Share' option in the context menu. (Windows 10 only) |
-
-## Reverting Changes
-
-All changes made by Win11Debloat can be reverted using the registry files in the 'Regfiles' folder and all apps can be reinstalled from the Microsoft Store.
diff --git a/Win11Debloat.ps1 b/Win11Debloat.ps1
index e511c30..503d92f 100644
--- a/Win11Debloat.ps1
+++ b/Win11Debloat.ps1
@@ -110,11 +110,11 @@ function RemoveSpecificApps {
function RegImport {
param
(
- $Message,
- $Path
+ $message,
+ $path
)
- Write-Output $Message
+ Write-Output $message
reg import $path
Write-Output ""
}
@@ -181,18 +181,80 @@ function ClearStartMenu {
# Copy template to default profile
Copy-Item -Path $startmenuTemplate -Destination $defaultProfile -Force
Write-Output "Copied start menu template to default user folder"
+ Write-Output ""
}
+# Add parameter to script and write to file
+function AddParameter {
+ param(
+ $parameterName,
+ $message
+ )
+
+ # Add key if it doesn't already exist
+ if(-not $global:PSBoundParameters.ContainsKey($parameterName)){
+ $global:PSBoundParameters.Add($parameterName, $true)
+ }
+
+ # Create or clear file that stores last used settings
+ if (!(Test-Path "$PSScriptRoot/LastSettings")) {
+ $null = New-Item "$PSScriptRoot/LastSettings"
+ }
+ elseif ($global:FirstSelection) {
+ $global:FirstSelection = $false
+ $null = Clear-Content "$PSScriptRoot/LastSettings"
+ }
+
+ # Create entry and add it to the file
+ $entry = $parameterName + "#- " + $message
+ Add-Content -Path "$PSScriptRoot/LastSettings" -Value $entry
+}
+
+
+function PrintHeader {
+ param(
+ $title
+ )
+
+ $fullTitle = " Win11Debloat Script - " + $title
+
+ Clear-Host
+ Write-Output "-------------------------------------------------------------------------------------------"
+ Write-Output $fullTitle
+ Write-Output "-------------------------------------------------------------------------------------------"
+}
+
+
+function PrintFromFile {
+ param(
+ $path
+ )
+
+ Clear-Host
+
+ # Get & print script menu from file
+ Foreach ($line in (Get-Content -Path $path )) {
+ Write-Output $line
+ }
+}
+
+
+$FirstSelection = $true
$SPParams = 'WhatIf', 'Confirm', 'Verbose', 'Silent'
$SPParamCount = 0
-foreach ($param in $SPParams) {
- if ($PSBoundParameters.ContainsKey($param)) {
+foreach ($Param in $SPParams) {
+ if ($PSBoundParameters.ContainsKey($Param)) {
$SPParamCount++
}
}
+# Remove LastSetting file if it's empty
+if ((Test-Path "$PSScriptRoot/LastSettings") -and ([String]::IsNullOrWhiteSpace((Get-content "$PSScriptRoot/LastSettings")))) {
+ Remove-Item -Path "$PSScriptRoot/LastSettings" -recurse
+}
+
# Change script execution based on provided parameters or user input
if ((-not $PSBoundParameters.Count) -or $RunDefaults -or $RunWin11Defaults -or ($SPParamCount -eq $PSBoundParameters.Count)) {
if ($RunDefaults -or $RunWin11Defaults) {
@@ -201,54 +263,81 @@ if ((-not $PSBoundParameters.Count) -or $RunDefaults -or $RunWin11Defaults -or (
else {
# Show menu and wait for user input, loops until valid input is provided
Do {
- Clear-Host
+ $ModeSelectionMessage = "Please select an option (1/2/0)"
# Get & print script menu from file
- Foreach ($line in (Get-Content -Path "$PSScriptRoot/Menus/Menu.txt" )) {
- Write-Output $line
+ PrintFromFile "$PSScriptRoot/Menus/Menu"
+
+ # Only show this option if LastSettings file exists
+ if (Test-Path "$PSScriptRoot/LastSettings") {
+ Write-Output "(3) New: Run the script with the settings from last time"
+ $ModeSelectionMessage = "Please select an option (1/2/3/0)"
}
- $Mode = Read-Host "Please select an option (1/2/0)"
+ Write-Output ""
+ Write-Output "(0) Show information about the script"
+ Write-Output ""
+ Write-Output ""
+
+ $Mode = Read-Host $ModeSelectionMessage
# Show information based on user input, Suppress user prompt if Silent parameter was passed
if ($Mode -eq '0') {
- Clear-Host
-
# Get & print script information from file
- Foreach ($line in (Get-Content -Path "$PSScriptRoot/Menus/Info.txt" )) {
- Write-Output $line
- }
+ PrintFromFile "$PSScriptRoot/Menus/Info"
Write-Output "Press any key to go back..."
$null = $Host.UI.RawUI.ReadKey("NoEcho,IncludeKeyDown")
}
elseif (-not $Silent -and ($Mode -eq '1')) {
- Clear-Host
-
# Get & print default settings info from file
- Foreach ($line in (Get-Content -Path "$PSScriptRoot/Menus/DefaultSettings.txt" )) {
- Write-Output $line
- }
+ PrintFromFile "$PSScriptRoot/Menus/DefaultSettings"
Write-Output "Press any key to start..."
$null = $Host.UI.RawUI.ReadKey("NoEcho,IncludeKeyDown")
}
+ elseif (($Mode -eq '3')) {
+ if (Test-Path "$PSScriptRoot/LastSettings") {
+ if(-not $Silent) {
+ PrintHeader 'Setup'
+ Write-Output "Win11Debloat will make the following changes:"
+
+ # Get & print default settings info from file
+ Foreach ($Line in (Get-Content -Path "$PSScriptRoot/LastSettings" )) {
+ # Remove any spaces before and after the Appname
+ $Line = $Line.Trim()
+
+ # Check if line has # char, show description, add parameter
+ if (-not ($Line.IndexOf('#') -eq -1)) {
+ Write-Output $Line.Substring(($Line.IndexOf('#') + 1), ($Line.Length - $Line.IndexOf('#') - 1))
+ $Line = $Line.Substring(0, $Line.IndexOf('#'))
+
+ $PSBoundParameters.Add($Line, $true)
+ }
+ }
+
+ Write-Output ""
+ Write-Output "Press any key to start..."
+ $null = $Host.UI.RawUI.ReadKey("NoEcho,IncludeKeyDown")
+ }
+ }
+ else {
+ $Mode = $null;
+ }
+ }
}
- while ($Mode -ne '1' -and $Mode -ne '2')
+ while ($Mode -ne '1' -and $Mode -ne '2' -and $Mode -ne '3')
}
# Add execution parameters based on the mode
switch ($Mode) {
# Default mode, no user input required, all (relevant) options are added
'1' {
- Clear-Host
- Write-Output "-------------------------------------------------------------------------------------------"
- Write-Output " Win11Debloat Script - Default Configuration"
- Write-Output "-------------------------------------------------------------------------------------------"
+ $DefaultParameterNames = 'RemoveApps','DisableTelemetry','DisableBing','DisableLockscreenTips','DisableSuggestions','ShowKnownFileExt','DisableWidgets','HideChat','DisableCopilot'
+
+ PrintHeader 'Default Configuration'
# Add default parameters if they don't already exist
- $DefaultParameterNames = 'RemoveApps','DisableTelemetry','DisableBing','DisableLockscreenTips','DisableSuggestions','ShowKnownFileExt','DisableWidgets','HideChat','DisableCopilot'
-
foreach ($ParameterName in $DefaultParameterNames) {
if(-not $PSBoundParameters.ContainsKey($ParameterName)){
$PSBoundParameters.Add($ParameterName, $true)
@@ -263,16 +352,13 @@ if ((-not $PSBoundParameters.Count) -or $RunDefaults -or $RunWin11Defaults -or (
# Custom mode, add options based on user input
'2' {
- # Get current windows version to compare against features
- $winversion = Get-ItemPropertyValue 'HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion' CurrentBuild
+ # Get current Windows build version to compare against features
+ $WinVersion = Get-ItemPropertyValue 'HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion' CurrentBuild
- Clear-Host
- Write-Output "-------------------------------------------------------------------------------------------"
- Write-Output " Win11Debloat Script - Custom Configuration"
- Write-Output "-------------------------------------------------------------------------------------------"
+ PrintHeader 'Custom Configuration'
if ($( Read-Host -Prompt "Remove pre-installed bloatware apps? (y/n)" ) -eq 'y') {
- $PSBoundParameters.Add('RemoveApps', $RemoveApps)
+ AddParameter 'RemoveApps' 'Remove bloatware apps'
# Show options for removing communication-related apps, only continue on valid input
Do {
@@ -289,67 +375,67 @@ if ((-not $PSBoundParameters.Count) -or $RunDefaults -or $RunWin11Defaults -or (
# Select correct taskbar search option based on user input
switch ($RemoveCommAppInput) {
'1' {
- $PSBoundParameters.Add('RemoveCommApps', $RemoveCommApps)
- $PSBoundParameters.Add('RemoveW11Outlook', $RemoveW11Outlook)
+ AddParameter 'RemoveCommApps' 'Remove the Mail, Calender, and People apps'
+ AddParameter 'RemoveW11Outlook' 'Remove the new Outlook for Windows app'
}
'2' {
- $PSBoundParameters.Add('RemoveCommApps', $RemoveCommApps)
+ AddParameter 'RemoveCommApps' 'Remove the Mail, Calender, and People apps'
}
'3' {
- $PSBoundParameters.Add('RemoveW11Outlook', $RemoveW11Outlook)
+ AddParameter 'RemoveW11Outlook' 'Remove the new Outlook for Windows app'
}
}
Write-Output ""
if ($( Read-Host -Prompt " Also remove gaming-related apps such as the Xbox App and Xbox Gamebar? (y/n)" ) -eq 'y') {
- $PSBoundParameters.Add('RemoveGamingApps', $RemoveGamingApps)
+ AddParameter 'RemoveGamingApps' 'Remove the Xbox App and Xbox Gamebar'
}
}
# Only show this option for windows 11 users running build 22621 or later
- if ($winversion -ge 22621){
+ if ($WinVersion -ge 22621){
Write-Output ""
if ($( Read-Host -Prompt "Remove all pinned apps from the start menu? This applies to all existing and new users and can't be reverted (y/n)" ) -eq 'y') {
- $PSBoundParameters.Add('ClearStart', $ClearStart)
+ AddParameter 'ClearStart' 'Remove all pinned apps from the start menu for new and existing users'
}
}
Write-Output ""
if ($( Read-Host -Prompt "Disable telemetry, diagnostic data, app-launch tracking and targeted ads? (y/n)" ) -eq 'y') {
- $PSBoundParameters.Add('DisableTelemetry', $DisableTelemetry)
+ AddParameter 'DisableTelemetry' 'Disable telemetry, diagnostic data & targeted ads'
}
Write-Output ""
if ($( Read-Host -Prompt "Disable bing search, bing AI & cortana in windows search? (y/n)" ) -eq 'y') {
- $PSBoundParameters.Add('DisableBing', $DisableBing)
+ AddParameter 'DisableBing' 'Disable bing search, bing AI & cortana in windows search'
}
Write-Output ""
if ($( Read-Host -Prompt "Disable tips, tricks, suggestions and ads in start, settings, notifications, explorer and lockscreen? (y/n)" ) -eq 'y') {
- $PSBoundParameters.Add('DisableSuggestions', $DisableSuggestions)
- $PSBoundParameters.Add('DisableLockscreenTips', $DisableLockscreenTips)
+ AddParameter 'DisableSuggestions' 'Disable tips, tricks, suggestions and ads in start, settings, notifications and windows explorer'
+ AddParameter 'DisableLockscreenTips' 'Disable tips & tricks on the lockscreen'
}
# Only show this option for windows 11 users running build 22621 or later
- if ($winversion -ge 22621){
+ if ($WinVersion -ge 22621){
Write-Output ""
if ($( Read-Host -Prompt "Disable Windows Copilot? This applies to all users (y/n)" ) -eq 'y') {
- $PSBoundParameters.Add('DisableCopilot', $DisableCopilot)
+ AddParameter 'DisableCopilot' 'Disable Windows copilot'
}
}
# Only show this option for windows 11 users running build 22000 or later
- if ($winversion -ge 22000){
+ if ($WinVersion -ge 22000){
Write-Output ""
if ($( Read-Host -Prompt "Restore the old Windows 10 style context menu? (y/n)" ) -eq 'y') {
- $PSBoundParameters.Add('RevertContextMenu', $RevertContextMenu)
+ AddParameter 'RevertContextMenu' 'Restore the old Windows 10 style context menu'
}
}
@@ -357,11 +443,11 @@ if ((-not $PSBoundParameters.Count) -or $RunDefaults -or $RunWin11Defaults -or (
if ($( Read-Host -Prompt "Do you want to make any changes to the taskbar and related services? (y/n)" ) -eq 'y') {
# Only show these specific options for windows 11 users running build 22000 or later
- if ($winversion -ge 22000){
+ if ($WinVersion -ge 22000){
Write-Output ""
if ($( Read-Host -Prompt " Align taskbar buttons to the left side? (y/n)" ) -eq 'y') {
- $PSBoundParameters.Add('TaskbarAlignLeft', $TaskbarAlignLeft)
+ AddParameter 'TaskbarAlignLeft' 'Align taskbar icons to the left'
}
# Show options for search icon on taskbar, only continue on valid input
@@ -380,38 +466,38 @@ if ((-not $PSBoundParameters.Count) -or $RunDefaults -or $RunWin11Defaults -or (
# Select correct taskbar search option based on user input
switch ($TbSearchInput) {
'1' {
- $PSBoundParameters.Add('HideSearchTb', $HideSearchTb)
+ AddParameter 'HideSearchTb' 'Hide search icon from the taskbar'
}
'2' {
- $PSBoundParameters.Add('ShowSearchIconTb', $ShowSearchIconTb)
+ AddParameter 'ShowSearchIconTb' 'Show search icon on the taskbar'
}
'3' {
- $PSBoundParameters.Add('ShowSearchLabelTb', $ShowSearchLabelTb)
+ AddParameter 'ShowSearchLabelTb' 'Show search icon with label on the taskbar'
}
'4' {
- $PSBoundParameters.Add('ShowSearchBoxTb', $ShowSearchBoxTb)
+ AddParameter 'ShowSearchBoxTb' 'Show search box on the taskbar'
}
}
Write-Output ""
if ($( Read-Host -Prompt " Hide the taskview button from the taskbar? (y/n)" ) -eq 'y') {
- $PSBoundParameters.Add('HideTaskview', $HideTaskview)
+ AddParameter 'HideTaskview' 'Hide the taskview button from the taskbar'
}
}
Write-Output ""
if ($( Read-Host -Prompt " Disable the widgets service and hide the icon from the taskbar? (y/n)" ) -eq 'y') {
- $PSBoundParameters.Add('DisableWidgets', $DisableWidgets)
+ AddParameter 'DisableWidgets' 'Disable the widget service & hide the widget (news and interests) icon from the taskbar'
}
# Only show this options for windows users running build 22621 or earlier
- if ($winversion -le 22621){
+ if ($WinVersion -le 22621){
Write-Output ""
if ($( Read-Host -Prompt " Hide the chat (meet now) icon from the taskbar? (y/n)" ) -eq 'y') {
- $PSBoundParameters.Add('HideChat', $HideChat)
+ AddParameter 'HideChat' 'Hide the chat (meet now) icon from the taskbar'
}
}
}
@@ -422,19 +508,19 @@ if ((-not $PSBoundParameters.Count) -or $RunDefaults -or $RunWin11Defaults -or (
Write-Output ""
if ($( Read-Host -Prompt " Show hidden files, folders and drives? (y/n)" ) -eq 'y') {
- $PSBoundParameters.Add('ShowHiddenFolders', $ShowHiddenFolders)
+ AddParameter 'ShowHiddenFolders' 'Show hidden files, folders and drives'
}
Write-Output ""
if ($( Read-Host -Prompt " Show file extensions for known file types? (y/n)" ) -eq 'y') {
- $PSBoundParameters.Add('ShowKnownFileExt', $ShowKnownFileExt)
+ AddParameter 'ShowKnownFileExt' 'Show file extensions for known file types'
}
Write-Output ""
if ($( Read-Host -Prompt " Hide duplicate removable drive entries from the windows explorer sidepane so they only show under This PC? (y/n)" ) -eq 'y') {
- $PSBoundParameters.Add('HideDupliDrive', $HideDupliDrive)
+ AddParameter 'HideDupliDrive' 'Hide duplicate removable drive entries from the windows explorer navigation pane'
}
# Only show option for disabling these specific folders for windows 10 users
@@ -445,19 +531,19 @@ if ((-not $PSBoundParameters.Count) -or $RunDefaults -or $RunWin11Defaults -or (
Write-Output ""
if ($( Read-Host -Prompt " Hide the onedrive folder from the windows explorer sidepane? (y/n)" ) -eq 'y') {
- $PSBoundParameters.Add('HideOnedrive', $HideOnedrive)
+ AddParameter 'HideOnedrive' 'Hide the onedrive folder in the windows explorer sidepanel'
}
Write-Output ""
if ($( Read-Host -Prompt " Hide the 3D objects folder from the windows explorer sidepane? (y/n)" ) -eq 'y') {
- $PSBoundParameters.Add('Hide3dObjects', $Hide3dObjects)
+ AddParameter 'Hide3dObjects' "Hide the 3D objects folder under 'This pc' in windows explorer"
}
Write-Output ""
if ($( Read-Host -Prompt " Hide the music folder from the windows explorer sidepane? (y/n)" ) -eq 'y') {
- $PSBoundParameters.Add('HideMusic', $HideMusic)
+ AddParameter 'HideMusic' "Hide the music folder under 'This pc' in windows explorer"
}
}
}
@@ -471,19 +557,19 @@ if ((-not $PSBoundParameters.Count) -or $RunDefaults -or $RunWin11Defaults -or (
Write-Output ""
if ($( Read-Host -Prompt " Hide the 'Include in library' option in the context menu? (y/n)" ) -eq 'y') {
- $PSBoundParameters.Add('HideIncludeInLibrary', $HideIncludeInLibrary)
+ AddParameter 'HideIncludeInLibrary' "Hide the 'Include in library' option in the context menu"
}
Write-Output ""
if ($( Read-Host -Prompt " Hide the 'Give access to' option in the context menu? (y/n)" ) -eq 'y') {
- $PSBoundParameters.Add('HideGiveAccessTo', $HideGiveAccessTo)
+ AddParameter 'HideGiveAccessTo' "Hide the 'Give access to' option in the context menu"
}
Write-Output ""
if ($( Read-Host -Prompt " Hide the 'Share' option in the context menu? (y/n)" ) -eq 'y') {
- $PSBoundParameters.Add('HideShare', $HideShare)
+ AddParameter 'HideShare' "Hide the 'Share' option in the context menu"
}
}
}
@@ -497,18 +583,17 @@ if ((-not $PSBoundParameters.Count) -or $RunDefaults -or $RunWin11Defaults -or (
$null = $Host.UI.RawUI.ReadKey("NoEcho,IncludeKeyDown")
}
- Clear-Host
- Write-Output "-------------------------------------------------------------------------------------------"
- Write-Output " Win11Debloat Script - Custom Configuration"
- Write-Output "-------------------------------------------------------------------------------------------"
+ PrintHeader 'Custom Configuration'
+ }
+
+ # Run with options from last time, loaded from file
+ '3' {
+ PrintHeader 'Custom Configuration'
}
}
}
else {
- Clear-Host
- Write-Output "-------------------------------------------------------------------------------------------"
- Write-Output " Win11Debloat Script - Custom Configuration"
- Write-Output "-------------------------------------------------------------------------------------------"
+ PrintHeader 'Custom Configuration'
}
@@ -532,8 +617,8 @@ else {
'RemoveCommApps' {
Write-Output "> Removing Mail, Calendar and People apps..."
- $appsList = '*Microsoft.windowscommunicationsapps*', '*Microsoft.People*'
- RemoveSpecificApps $appsList
+ $AppsList = '*Microsoft.windowscommunicationsapps*', '*Microsoft.People*'
+ RemoveSpecificApps $AppsList
Write-Output ""
continue
@@ -541,14 +626,20 @@ else {
'RemoveW11Outlook' {
Write-Output "> Removing new Outlook for Windows app..."
- $appsList = '*Microsoft.OutlookForWindows*'
- RemoveSpecificApps $appsList
+ $AppsList = '*Microsoft.OutlookForWindows*'
+ RemoveSpecificApps $AppsList
Write-Output ""
continue
}
'RemoveGamingApps' {
- RemoveApps "$PSScriptRoot/GamingAppslist.txt" "> Removing gaming-related windows apps..."
+ Write-Output "> Removing gaming related apps..."
+
+ $AppsList = '*Microsoft.GamingApp*', '*Microsoft.XboxGameOverlay*', '*Microsoft.XboxGamingOverlay*'
+ RemoveSpecificApps $AppsList
+
+ Write-Output ""
+
continue
}
'ClearStart' {