mirror of
https://github.com/Raphire/Win11Debloat.git
synced 2025-11-17 19:16:26 +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
|
||||
-------------------------------------------------------------------------------------------
|
||||
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)
|
||||
|
||||
Telemetry, Tracking & Suggested Content
|
||||
@@ -34,11 +34,11 @@ Personalisation
|
||||
|
||||
File Explorer
|
||||
- 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.
|
||||
- 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 duplicate removable drive entries from the File Explorer sidepanel.
|
||||
- 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 navigation pane.
|
||||
|
||||
Taskbar
|
||||
- Align taskbar icons to the left. (W11 only)
|
||||
@@ -59,7 +59,7 @@ Other
|
||||
- Disable Fast Start-up to ensure a full shutdown.
|
||||
- Disable network connectivity during Modern Standby to reduce battery drain. (W11 only)
|
||||
- Option to apply changes to a different user, instead of the currently logged in user.
|
||||
- Sysprep mode to apply changes to the Windows Default user profile.
|
||||
- Sysprep mode to apply changes to the Windows Default user profile.
|
||||
|
||||
-------------------------------------------------------------------------------------------
|
||||
Default mode
|
||||
@@ -67,9 +67,8 @@ Other
|
||||
The default mode applies the changes that are recommended for most users. This includes:
|
||||
- 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 tips, tricks, suggestions & ads across Windows.
|
||||
- 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 Microsoft Copilot.
|
||||
- Disable Windows Recall. (W11 only)
|
||||
|
||||
2
Get.ps1
2
Get.ps1
@@ -88,7 +88,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.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
|
||||
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
|
||||
|
||||
- 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 and the MSN news feed in Microsoft Edge.
|
||||
- Disable tips, tricks, suggestions & ads across Windows.
|
||||
- Disable ads, suggestions and the MSN news feed in Microsoft Edge.
|
||||
- Disable the 'Windows Spotlight' desktop background option.
|
||||
|
||||
#### 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
|
||||
- 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 tips, tricks, suggestions & ads across Windows.
|
||||
- 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 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
|
||||
)
|
||||
|
||||
$userDirectoryExists = Test-Path "$env:SystemDrive\Users\$userName"
|
||||
$userPath = "$env:SystemDrive\Users\$userName\$fileName"
|
||||
|
||||
if ((Test-Path $userPath) -or ($userDirectoryExists -and (-not $exitIfPathNotFound))) {
|
||||
return $userPath
|
||||
}
|
||||
|
||||
$userDirectoryExists = Test-Path $env:USERPROFILE -Replace ('\\' + $env:USERNAME + '$'), "\$userName"
|
||||
$userPath = $env:USERPROFILE -Replace ('\\' + $env:USERNAME + '$'), "\$userName\$fileName"
|
||||
|
||||
if ((Test-Path $userPath) -or ($userDirectoryExists -and (-not $exitIfPathNotFound))) {
|
||||
return $userPath
|
||||
try {
|
||||
$userDirectoryExists = Test-Path "$env:SystemDrive\Users\$userName"
|
||||
$userPath = "$env:SystemDrive\Users\$userName\$fileName"
|
||||
|
||||
if ((Test-Path $userPath) -or ($userDirectoryExists -and (-not $exitIfPathNotFound))) {
|
||||
return $userPath
|
||||
}
|
||||
|
||||
$userDirectoryExists = Test-Path ($env:USERPROFILE -Replace ('\\' + $env:USERNAME + '$'), "\$userName")
|
||||
$userPath = $env:USERPROFILE -Replace ('\\' + $env:USERNAME + '$'), "\$userName\$fileName"
|
||||
|
||||
if ((Test-Path $userPath) -or ($userDirectoryExists -and (-not $exitIfPathNotFound))) {
|
||||
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
|
||||
@@ -715,7 +720,7 @@ function ReplaceStartMenu {
|
||||
|
||||
# Change path to correct user if a user was specified
|
||||
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
|
||||
@@ -731,16 +736,15 @@ function ReplaceStartMenu {
|
||||
|
||||
$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"
|
||||
|
||||
# Backup current start menu file
|
||||
Move-Item -Path $startMenuBinFile -Destination $backupBinFile -Force
|
||||
if (Test-Path $startMenuBinFile) {
|
||||
# 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-Item -Path $startMenuTemplate -Destination $startMenuBinFile -Force
|
||||
@@ -826,7 +830,8 @@ function PrintFromFile {
|
||||
|
||||
function PrintAppsList {
|
||||
param (
|
||||
$path
|
||||
$path,
|
||||
$printCount = $false
|
||||
)
|
||||
|
||||
if (-not (Test-Path $path)) {
|
||||
@@ -834,6 +839,11 @@ function PrintAppsList {
|
||||
}
|
||||
|
||||
$appsList = ReadAppslistFromFile $path
|
||||
|
||||
if ($printCount) {
|
||||
Write-Output "- Remove $($appsList.Count) apps:"
|
||||
}
|
||||
|
||||
Write-Host $appsList -ForegroundColor DarkGray
|
||||
}
|
||||
|
||||
@@ -1572,7 +1582,7 @@ if ((-not $script:Params.Count) -or $RunDefaults -or $RunDefaultsLite -or $RunSa
|
||||
PrintAppsList "$PSScriptRoot/Appslist.txt"
|
||||
}
|
||||
'2' {
|
||||
AddParameter 'RemoveAppsCustom' 'Remove $($script:SelectedApps.Count) apps:' $false
|
||||
AddParameter 'RemoveAppsCustom' "Remove $($script:SelectedApps.Count) apps:" $false
|
||||
PrintAppsList "$PSScriptRoot/CustomAppsList"
|
||||
}
|
||||
}
|
||||
@@ -1656,11 +1666,16 @@ if ((-not $script:Params.Count) -or $RunDefaults -or $RunDefaultsLite -or $RunSa
|
||||
$parameterName = $line.Substring(0, $line.IndexOf('#'))
|
||||
|
||||
# Print parameter description and add parameter to Params list
|
||||
if ($parameterName -eq "RemoveAppsCustom") {
|
||||
PrintAppsList "$PSScriptRoot/CustomAppsList"
|
||||
}
|
||||
else {
|
||||
Write-Output $line.Substring(($line.IndexOf('#') + 1), ($line.Length - $line.IndexOf('#') - 1))
|
||||
switch ($parameterName) {
|
||||
'RemoveApps' {
|
||||
PrintAppsList "$PSScriptRoot/Appslist.txt" $true
|
||||
}
|
||||
'RemoveAppsCustom' {
|
||||
PrintAppsList "$PSScriptRoot/CustomAppsList" $true
|
||||
}
|
||||
default {
|
||||
Write-Output $line.Substring(($line.IndexOf('#') + 1), ($line.Length - $line.IndexOf('#') - 1))
|
||||
}
|
||||
}
|
||||
|
||||
if (-not $script:Params.ContainsKey($parameterName)) {
|
||||
|
||||
Reference in New Issue
Block a user