mirror of
https://github.com/Raphire/Win11Debloat.git
synced 2025-11-17 11:06:18 +00:00
Compare commits
7 Commits
2025.09.27
...
2025.09.28
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
cf1a58b0d0 | ||
|
|
86a2555454 | ||
|
|
070e692b90 | ||
|
|
44aa34ab9f | ||
|
|
60a1b3eb6b | ||
|
|
3f8caf86ee | ||
|
|
f1595cd91e |
@@ -6,7 +6,7 @@ disable telemetry, remove intrusive interface elements and much more.
|
|||||||
All Features
|
All Features
|
||||||
-------------------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------------------
|
||||||
App Removal
|
App Removal
|
||||||
- Remove a wide variety of bloatware apps.
|
- Remove a wide variety of preinstalled apps.
|
||||||
- Remove or replace all pinned apps from start for the current user, or for all existing & new users. (W11 only)
|
- Remove or replace all pinned apps from start for the current user, or for all existing & new users. (W11 only)
|
||||||
|
|
||||||
Telemetry, Tracking & Suggested Content
|
Telemetry, Tracking & Suggested Content
|
||||||
@@ -34,11 +34,11 @@ Personalisation
|
|||||||
|
|
||||||
File Explorer
|
File Explorer
|
||||||
- Change the default location that File Explorer opens to.
|
- Change the default location that File Explorer opens to.
|
||||||
- Show hidden files, folders & drives.
|
- Show hidden files, folders and drives.
|
||||||
- Show file extensions for known file types.
|
- Show file extensions for known file types.
|
||||||
- Hide the Home or Gallery section from the File Explorer navigation pane. (W11 only)
|
- Hide the Home or Gallery section from the File Explorer navigation pane. (W11 only)
|
||||||
- Hide the 3D objects, music or OneDrive folder from the File Explorer sidepanel. (W10 only)
|
- Hide the 3D objects, music or OneDrive folder from the File Explorer navigation pane. (W10 only)
|
||||||
- Hide duplicate removable drive entries from the File Explorer sidepanel.
|
- Hide duplicate removable drive entries from the File Explorer navigation pane.
|
||||||
|
|
||||||
Taskbar
|
Taskbar
|
||||||
- Align taskbar icons to the left. (W11 only)
|
- Align taskbar icons to the left. (W11 only)
|
||||||
@@ -67,9 +67,8 @@ Other
|
|||||||
The default mode applies the changes that are recommended for most users. This includes:
|
The default mode applies the changes that are recommended for most users. This includes:
|
||||||
- Remove the default selection or your custom selection of apps.
|
- Remove the default selection or your custom selection of apps.
|
||||||
- Disable telemetry, diagnostic data, app-launch tracking & targeted ads.
|
- Disable telemetry, diagnostic data, app-launch tracking & targeted ads.
|
||||||
- Disable tips, tricks, suggestions and ads in start, settings, notifications and more.
|
- Disable tips, tricks, suggestions & ads across Windows.
|
||||||
- Disable ads, suggestions and the MSN news feed in Microsoft Edge.
|
- Disable ads, suggestions and the MSN news feed in Microsoft Edge.
|
||||||
- Disable tips & tricks on the lockscreen. (This may change your lockscreen wallpaper)
|
|
||||||
- Disable & remove Bing web search, Bing AI and Cortana from Windows search.
|
- Disable & remove Bing web search, Bing AI and Cortana from Windows search.
|
||||||
- Disable & remove Microsoft Copilot.
|
- Disable & remove Microsoft Copilot.
|
||||||
- Disable Windows Recall. (W11 only)
|
- Disable Windows Recall. (W11 only)
|
||||||
|
|||||||
2
Get.ps1
2
Get.ps1
@@ -88,7 +88,7 @@ Write-Output "------------------------------------------------------------------
|
|||||||
Write-Output "> Downloading Win11Debloat..."
|
Write-Output "> Downloading Win11Debloat..."
|
||||||
|
|
||||||
# Download latest version of Win11Debloat from github as zip archive
|
# Download latest version of Win11Debloat from github as zip archive
|
||||||
Invoke-RestMethod https://api.github.com/repos/Raphire/Win11Debloat/zipball/2025.09.27 -OutFile "$env:TEMP/win11debloat.zip"
|
Invoke-RestMethod https://api.github.com/repos/Raphire/Win11Debloat/zipball/2025.09.28 -OutFile "$env:TEMP/win11debloat.zip"
|
||||||
|
|
||||||
# Remove old script folder if it exists, except for CustomAppsList and SavedSettings files
|
# Remove old script folder if it exists, except for CustomAppsList and SavedSettings files
|
||||||
if (Test-Path "$env:TEMP/Win11Debloat") {
|
if (Test-Path "$env:TEMP/Win11Debloat") {
|
||||||
|
|||||||
@@ -101,8 +101,8 @@ Below is an overview of the key features and functionality offered by Win11Deblo
|
|||||||
#### Telemetry, Tracking & Suggested Content
|
#### Telemetry, Tracking & Suggested Content
|
||||||
|
|
||||||
- Disable telemetry, diagnostic data, activity history, app-launch tracking & targeted ads.
|
- 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 tips, tricks, suggestions & ads across Windows.
|
||||||
- Disable ads and the MSN news feed in Microsoft Edge.
|
- Disable ads, suggestions and the MSN news feed in Microsoft Edge.
|
||||||
- Disable the 'Windows Spotlight' desktop background option.
|
- Disable the 'Windows Spotlight' desktop background option.
|
||||||
|
|
||||||
#### Bing Web Search, Copilot & AI Features
|
#### Bing Web Search, Copilot & AI Features
|
||||||
@@ -169,7 +169,7 @@ Alternatively, you can launch the script with the `-RunDefaults` or `-RunDefault
|
|||||||
#### Changes included in the default mode
|
#### Changes included in the default mode
|
||||||
- Remove the default or your custom selection of apps. (See below for the default selection of apps)
|
- 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 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 tips, tricks, suggestions & ads across Windows.
|
||||||
- Disable ads, suggestions and the MSN news feed in Microsoft Edge.
|
- Disable ads, suggestions and the MSN news feed in Microsoft Edge.
|
||||||
- Disable & remove Bing web search, Bing AI and Cortana from Windows search.
|
- Disable & remove Bing web search, Bing AI and Cortana from Windows search.
|
||||||
- Disable & remove Microsoft Copilot.
|
- Disable & remove Microsoft Copilot.
|
||||||
|
|||||||
BIN
Regfiles/Sysprep/Combine_Taskbar_Always.reg
Normal file
BIN
Regfiles/Sysprep/Combine_Taskbar_Always.reg
Normal file
Binary file not shown.
BIN
Regfiles/Sysprep/Combine_Taskbar_Never.reg
Normal file
BIN
Regfiles/Sysprep/Combine_Taskbar_Never.reg
Normal file
Binary file not shown.
BIN
Regfiles/Sysprep/Combine_Taskbar_When_Full.reg
Normal file
BIN
Regfiles/Sysprep/Combine_Taskbar_When_Full.reg
Normal file
Binary file not shown.
@@ -582,18 +582,23 @@ function GetUserDirectory {
|
|||||||
$exitIfPathNotFound = $true
|
$exitIfPathNotFound = $true
|
||||||
)
|
)
|
||||||
|
|
||||||
$userDirectoryExists = Test-Path "$env:SystemDrive\Users\$userName"
|
try {
|
||||||
$userPath = "$env:SystemDrive\Users\$userName\$fileName"
|
$userDirectoryExists = Test-Path "$env:SystemDrive\Users\$userName"
|
||||||
|
$userPath = "$env:SystemDrive\Users\$userName\$fileName"
|
||||||
|
|
||||||
if ((Test-Path $userPath) -or ($userDirectoryExists -and (-not $exitIfPathNotFound))) {
|
if ((Test-Path $userPath) -or ($userDirectoryExists -and (-not $exitIfPathNotFound))) {
|
||||||
return $userPath
|
return $userPath
|
||||||
}
|
}
|
||||||
|
|
||||||
$userDirectoryExists = Test-Path $env:USERPROFILE -Replace ('\\' + $env:USERNAME + '$'), "\$userName"
|
$userDirectoryExists = Test-Path ($env:USERPROFILE -Replace ('\\' + $env:USERNAME + '$'), "\$userName")
|
||||||
$userPath = $env:USERPROFILE -Replace ('\\' + $env:USERNAME + '$'), "\$userName\$fileName"
|
$userPath = $env:USERPROFILE -Replace ('\\' + $env:USERNAME + '$'), "\$userName\$fileName"
|
||||||
|
|
||||||
if ((Test-Path $userPath) -or ($userDirectoryExists -and (-not $exitIfPathNotFound))) {
|
if ((Test-Path $userPath) -or ($userDirectoryExists -and (-not $exitIfPathNotFound))) {
|
||||||
return $userPath
|
return $userPath
|
||||||
|
}
|
||||||
|
} catch {
|
||||||
|
Write-Host "Error: Something went wrong when trying to find the user directory path for user $userName. Please ensure the user exists on this system." -ForegroundColor Red
|
||||||
|
AwaitKeyToExit
|
||||||
}
|
}
|
||||||
|
|
||||||
Write-Host "Error: Unable to find user directory path for user $userName" -ForegroundColor Red
|
Write-Host "Error: Unable to find user directory path for user $userName" -ForegroundColor Red
|
||||||
@@ -715,7 +720,7 @@ function ReplaceStartMenu {
|
|||||||
|
|
||||||
# Change path to correct user if a user was specified
|
# Change path to correct user if a user was specified
|
||||||
if ($script:Params.ContainsKey("User")) {
|
if ($script:Params.ContainsKey("User")) {
|
||||||
$startMenuBinFile = GetUserDirectory -userName "$(GetUserName)" -fileName "AppData\Local\Packages\Microsoft.Windows.StartMenuExperienceHost_cw5n1h2txyewy\LocalState\start2.bin"
|
$startMenuBinFile = GetUserDirectory -userName "$(GetUserName)" -fileName "AppData\Local\Packages\Microsoft.Windows.StartMenuExperienceHost_cw5n1h2txyewy\LocalState\start2.bin" -exitIfPathNotFound $false
|
||||||
}
|
}
|
||||||
|
|
||||||
# Check if template bin file exists, return early if it doesn't
|
# Check if template bin file exists, return early if it doesn't
|
||||||
@@ -731,16 +736,15 @@ function ReplaceStartMenu {
|
|||||||
|
|
||||||
$userName = [regex]::Match($startMenuBinFile, '(?:Users\\)([^\\]+)(?:\\AppData)').Groups[1].Value
|
$userName = [regex]::Match($startMenuBinFile, '(?:Users\\)([^\\]+)(?:\\AppData)').Groups[1].Value
|
||||||
|
|
||||||
# Check if bin file exists, return early if it doesn't
|
|
||||||
if (-not (Test-Path $startMenuBinFile)) {
|
|
||||||
Write-Host "Error: Unable to replace start menu for user $userName, original start2.bin file not found" -ForegroundColor Red
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
$backupBinFile = $startMenuBinFile + ".bak"
|
$backupBinFile = $startMenuBinFile + ".bak"
|
||||||
|
|
||||||
# Backup current start menu file
|
if (Test-Path $startMenuBinFile) {
|
||||||
Move-Item -Path $startMenuBinFile -Destination $backupBinFile -Force
|
# Backup current start menu file
|
||||||
|
Move-Item -Path $startMenuBinFile -Destination $backupBinFile -Force
|
||||||
|
} else {
|
||||||
|
Write-Host "Warning: Unable to find original start2.bin file for user $userName. No backup was created for this user!" -ForegroundColor Yellow
|
||||||
|
New-Item -ItemType File -Path $startMenuBinFile -Force
|
||||||
|
}
|
||||||
|
|
||||||
# Copy template file
|
# Copy template file
|
||||||
Copy-Item -Path $startMenuTemplate -Destination $startMenuBinFile -Force
|
Copy-Item -Path $startMenuTemplate -Destination $startMenuBinFile -Force
|
||||||
@@ -826,7 +830,8 @@ function PrintFromFile {
|
|||||||
|
|
||||||
function PrintAppsList {
|
function PrintAppsList {
|
||||||
param (
|
param (
|
||||||
$path
|
$path,
|
||||||
|
$printCount = $false
|
||||||
)
|
)
|
||||||
|
|
||||||
if (-not (Test-Path $path)) {
|
if (-not (Test-Path $path)) {
|
||||||
@@ -834,6 +839,11 @@ function PrintAppsList {
|
|||||||
}
|
}
|
||||||
|
|
||||||
$appsList = ReadAppslistFromFile $path
|
$appsList = ReadAppslistFromFile $path
|
||||||
|
|
||||||
|
if ($printCount) {
|
||||||
|
Write-Output "- Remove $($appsList.Count) apps:"
|
||||||
|
}
|
||||||
|
|
||||||
Write-Host $appsList -ForegroundColor DarkGray
|
Write-Host $appsList -ForegroundColor DarkGray
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1572,7 +1582,7 @@ if ((-not $script:Params.Count) -or $RunDefaults -or $RunDefaultsLite -or $RunSa
|
|||||||
PrintAppsList "$PSScriptRoot/Appslist.txt"
|
PrintAppsList "$PSScriptRoot/Appslist.txt"
|
||||||
}
|
}
|
||||||
'2' {
|
'2' {
|
||||||
AddParameter 'RemoveAppsCustom' 'Remove $($script:SelectedApps.Count) apps:' $false
|
AddParameter 'RemoveAppsCustom' "Remove $($script:SelectedApps.Count) apps:" $false
|
||||||
PrintAppsList "$PSScriptRoot/CustomAppsList"
|
PrintAppsList "$PSScriptRoot/CustomAppsList"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1656,11 +1666,16 @@ if ((-not $script:Params.Count) -or $RunDefaults -or $RunDefaultsLite -or $RunSa
|
|||||||
$parameterName = $line.Substring(0, $line.IndexOf('#'))
|
$parameterName = $line.Substring(0, $line.IndexOf('#'))
|
||||||
|
|
||||||
# Print parameter description and add parameter to Params list
|
# Print parameter description and add parameter to Params list
|
||||||
if ($parameterName -eq "RemoveAppsCustom") {
|
switch ($parameterName) {
|
||||||
PrintAppsList "$PSScriptRoot/CustomAppsList"
|
'RemoveApps' {
|
||||||
}
|
PrintAppsList "$PSScriptRoot/Appslist.txt" $true
|
||||||
else {
|
}
|
||||||
Write-Output $line.Substring(($line.IndexOf('#') + 1), ($line.Length - $line.IndexOf('#') - 1))
|
'RemoveAppsCustom' {
|
||||||
|
PrintAppsList "$PSScriptRoot/CustomAppsList" $true
|
||||||
|
}
|
||||||
|
default {
|
||||||
|
Write-Output $line.Substring(($line.IndexOf('#') + 1), ($line.Length - $line.IndexOf('#') - 1))
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (-not $script:Params.ContainsKey($parameterName)) {
|
if (-not $script:Params.ContainsKey($parameterName)) {
|
||||||
|
|||||||
Reference in New Issue
Block a user