mirror of
https://github.com/Raphire/Win11Debloat.git
synced 2025-11-17 02:56:17 +00:00
Added support for running the script with arguments, this removes the need for any user input at runtime and makes it easies to run the script with custom settings. Also some major refactoring in Win10Debloat.ps1
This commit is contained in:
248
Win10Debloat.ps1
248
Win10Debloat.ps1
@@ -1,44 +1,21 @@
|
||||
Write-Output "-------------------------------------------------------------------------------------------"
|
||||
Write-Output "Win10Debloat Script - Setup"
|
||||
Write-Output "-------------------------------------------------------------------------------------------"
|
||||
Write-Output "(1) Run Win10Debloat with the default settings"
|
||||
Write-Output "(2) Advanced: Choose which changes you want Win10Debloat to make"
|
||||
Write-Output ""
|
||||
Do { $script_mode = Read-Host "Please select an option (1/2)" }
|
||||
while ($script_mode -ne '1' -and $script_mode -ne '2')
|
||||
[CmdletBinding(SupportsShouldProcess)]
|
||||
param
|
||||
(
|
||||
[Parameter(ValueFromPipeline=$true)][switch]$RunDefaults,
|
||||
[Parameter(ValueFromPipeline=$true)][switch]$RemoveApps,
|
||||
[Parameter(ValueFromPipeline=$true)][switch]$DisableOnedrive,
|
||||
[Parameter(ValueFromPipeline=$true)][switch]$Disable3dObjects,
|
||||
[Parameter(ValueFromPipeline=$true)][switch]$DisableMusic,
|
||||
[Parameter(ValueFromPipeline=$true)][switch]$DisableBingSearches,
|
||||
[Parameter(ValueFromPipeline=$true)][switch]$DisableLockscreenTips,
|
||||
[Parameter(ValueFromPipeline=$true)][switch]$DisableWindowsSuggestions,
|
||||
[Parameter(ValueFromPipeline=$true)][switch]$DisableIncludeInLibrary,
|
||||
[Parameter(ValueFromPipeline=$true)][switch]$DisableGiveAccessTo,
|
||||
[Parameter(ValueFromPipeline=$true)][switch]$DisableShare
|
||||
)
|
||||
|
||||
|
||||
if ($script_mode -eq '1'){
|
||||
Clear
|
||||
Write-Output "-------------------------------------------------------------------------------------------"
|
||||
Write-Output "Win10Debloat Script - Default Configuration"
|
||||
Write-Output "-------------------------------------------------------------------------------------------"
|
||||
}
|
||||
elseif ($script_mode -eq '2') {
|
||||
Clear
|
||||
Write-Output "-------------------------------------------------------------------------------------------"
|
||||
Write-Output "Win10Debloat Script - Advanced Configuration"
|
||||
Write-Output "-------------------------------------------------------------------------------------------"
|
||||
$remove_apps = Read-Host "Remove the pre-installed windows 10 apps? (y/n)"
|
||||
|
||||
$disable_onedrive = Read-Host "Hide the onedrive folder in windows explorer? (y/n)"
|
||||
|
||||
$disable_3d_objects = Read-Host "Hide the 3D objects folder in windows explorer? (y/n)"
|
||||
|
||||
$disable_music = Read-Host "Hide the music folder in windows explorer? (y/n)"
|
||||
|
||||
$disable_bing_searches = Read-Host "Disable bing in windows search? (y/n)"
|
||||
|
||||
$disable_lockscreen_tips = Read-Host "Disable tips & tricks on the lockscreen? (y/n)"
|
||||
|
||||
$disable_windows_suggestions = Read-Host "Disable tips, tricks and suggestions in the startmenu and settings? (y/n)"
|
||||
|
||||
$disable_context = Read-Host "Disable the contextmenu entries for: Share, Give access to and Include in library? (y/n)"
|
||||
|
||||
Write-Output ""
|
||||
}
|
||||
|
||||
if ($remove_apps -eq 'y' -or $script_mode -eq '1') {
|
||||
function RemoveApps
|
||||
{
|
||||
Write-Output "> Removing pre-installed windows 10 apps..."
|
||||
|
||||
$apps = @(
|
||||
@@ -100,55 +77,172 @@ if ($remove_apps -eq 'y' -or $script_mode -eq '1') {
|
||||
)
|
||||
|
||||
foreach ($app in $apps) {
|
||||
Write-Output " Attempting to remove $app"
|
||||
Write-Output "Attempting to remove $app"
|
||||
|
||||
Get-AppxPackage -Name $app -AllUsers | Remove-AppxPackage
|
||||
}
|
||||
}
|
||||
|
||||
if ($disable_onedrive -eq 'y') {
|
||||
Write-Output "> Hiding the onedrive folder in windows explorer..."
|
||||
function RegImport
|
||||
{
|
||||
param
|
||||
(
|
||||
$Message,
|
||||
$Path
|
||||
)
|
||||
|
||||
regedit /s $PSScriptRoot\Regfiles\Hide_Onedrive_Folder.reg
|
||||
Write-Output $Message
|
||||
reg import $path
|
||||
}
|
||||
|
||||
if((-NOT $PSBoundParameters.Count) -or $RunDefaults -or (($PSBoundParameters.Count -eq 1) -and ($PSBoundParameters.ContainsKey('WhatIf') -or $PSBoundParameters.ContainsKey('Confirm') -or $PSBoundParameters.ContainsKey('Verbose'))))
|
||||
{
|
||||
if($RunDefaults)
|
||||
{
|
||||
$Mode = '1';
|
||||
}
|
||||
else
|
||||
{
|
||||
Clear
|
||||
Write-Output "-------------------------------------------------------------------------------------------"
|
||||
Write-Output " Win10Debloat Script - Setup"
|
||||
Write-Output "-------------------------------------------------------------------------------------------"
|
||||
Write-Output "(1) Run Win10Debloat with the default settings"
|
||||
Write-Output "(2) Advanced: Choose which changes you want Win10Debloat to make"
|
||||
Write-Output ""
|
||||
|
||||
if ($disable_3d_objects -eq 'y' -or $script_mode -eq '1') {
|
||||
Write-Output "> Hiding the 3D objects folder in windows explorer..."
|
||||
Do { $Mode = Read-Host "Please select an option (1/2)" }
|
||||
while ($Mode -ne '1' -and $Mode -ne '2')
|
||||
}
|
||||
|
||||
regedit /s $PSScriptRoot\Regfiles\Hide_3D_Objects_Folder.reg
|
||||
switch($Mode)
|
||||
{
|
||||
'1'
|
||||
{
|
||||
Clear
|
||||
Write-Output "-------------------------------------------------------------------------------------------"
|
||||
Write-Output " Win10Debloat Script - Default Configuration"
|
||||
Write-Output "-------------------------------------------------------------------------------------------"
|
||||
$PSBoundParameters.Add('RemoveApps', $RemoveApps)
|
||||
$PSBoundParameters.Add('Disable3dObjects', $Disable3dObjects)
|
||||
$PSBoundParameters.Add('DisableBingSearches', $DisableBingSearches)
|
||||
$PSBoundParameters.Add('DisableLockscreenTips', $DisableLockscreenTips)
|
||||
$PSBoundParameters.Add('DisableWindowsSuggestions', $DisableWindowsSuggestions)
|
||||
$PSBoundParameters.Add('DisableIncludeInLibrary', $DisableIncludeInLibrary)
|
||||
$PSBoundParameters.Add('DisableGiveAccessTo', $DisableGiveAccessTo)
|
||||
$PSBoundParameters.Add('DisableShare', $DisableShare)
|
||||
}
|
||||
'2'
|
||||
{
|
||||
Clear
|
||||
Write-Output "-------------------------------------------------------------------------------------------"
|
||||
Write-Output " Win10Debloat Script - Advanced Configuration"
|
||||
Write-Output "-------------------------------------------------------------------------------------------"
|
||||
|
||||
if($( Read-Host -Prompt "Remove the pre-installed windows 10 apps? (y/n)" ) -eq 'y')
|
||||
{
|
||||
$PSBoundParameters.Add('RemoveApps', $RemoveApps)
|
||||
}
|
||||
|
||||
if($( Read-Host -Prompt "Hide the onedrive folder in windows explorer? (y/n)" ) -eq 'y')
|
||||
{
|
||||
$PSBoundParameters.Add('DisableOnedrive', $DisableOnedrive)
|
||||
}
|
||||
|
||||
if($( Read-Host -Prompt "Hide the 3D objects folder in windows explorer? (y/n)" ) -eq 'y')
|
||||
{
|
||||
$PSBoundParameters.Add('Disable3dObjects', $Disable3dObjects)
|
||||
}
|
||||
|
||||
if($( Read-Host -Prompt "Hide the music folder in windows explorer? (y/n)" ) -eq 'y')
|
||||
{
|
||||
$PSBoundParameters.Add('DisableMusic', $DisableMusic)
|
||||
}
|
||||
|
||||
if($( Read-Host -Prompt "Disable bing in windows search? (y/n)" ) -eq 'y')
|
||||
{
|
||||
$PSBoundParameters.Add('DisableBingSearches', $DisableBingSearches)
|
||||
}
|
||||
|
||||
if($( Read-Host -Prompt "Disable tips & tricks on the lockscreen? (y/n)" ) -eq 'y')
|
||||
{
|
||||
$PSBoundParameters.Add('DisableLockscreenTips', $DisableLockscreenTips)
|
||||
}
|
||||
|
||||
if($( Read-Host -Prompt "Disable tips, tricks and suggestions in the startmenu and settings? (y/n)" ) -eq 'y')
|
||||
{
|
||||
$PSBoundParameters.Add('DisableWindowsSuggestions', $DisableWindowsSuggestions)
|
||||
}
|
||||
|
||||
if($( Read-Host -Prompt "Disable the 'Include in library' option in the context menu? (y/n)" ) -eq 'y')
|
||||
{
|
||||
$PSBoundParameters.Add('DisableIncludeInLibrary', $DisableIncludeInLibrary)
|
||||
}
|
||||
|
||||
if($( Read-Host -Prompt "Disable the 'Give access to' option in the context menu? (y/n)" ) -eq 'y')
|
||||
{
|
||||
$PSBoundParameters.Add('DisableGiveAccessTo', $DisableGiveAccessTo)
|
||||
}
|
||||
|
||||
if($( Read-Host -Prompt "Disable the 'Share' option in the context menu? (y/n)" ) -eq 'y')
|
||||
{
|
||||
$PSBoundParameters.Add('DisableShare', $DisableShare)
|
||||
}
|
||||
|
||||
Write-Output ""
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
Clear
|
||||
Write-Output "-------------------------------------------------------------------------------------------"
|
||||
Write-Output " Win10Debloat Script - Custom Configuration"
|
||||
Write-Output "-------------------------------------------------------------------------------------------"
|
||||
}
|
||||
|
||||
if ($disable_music -eq 'y') {
|
||||
Write-Output "> Hiding the music folder in windows explorer..."
|
||||
|
||||
regedit /s $PSScriptRoot\Regfiles\Hide_Music_folder.reg
|
||||
}
|
||||
|
||||
if ($disable_bing_searches -eq 'y' -or $script_mode -eq '1') {
|
||||
Write-Output "> Disabling bing in windows search..."
|
||||
|
||||
regedit /s $PSScriptRoot\Regfiles\Disable_Bing_Searches.reg
|
||||
}
|
||||
|
||||
if ($disable_lockscreen_tips -eq 'y' -or $script_mode -eq '1') {
|
||||
Write-Output "> Disabling tips & tricks on the lockscreen..."
|
||||
|
||||
regedit /s $PSScriptRoot\Regfiles\Disable_Lockscreen_Tips.reg
|
||||
}
|
||||
|
||||
if ($disable_windows_suggestions -eq 'y' -or $script_mode -eq '1') {
|
||||
Write-Output "> Disabling tips, tricks and suggestions in the startmenu and settings..."
|
||||
|
||||
regedit /s $PSScriptRoot\Regfiles\Disable_Windows_Suggestions.reg
|
||||
}
|
||||
|
||||
if ($disable_context -eq 'y' -or $script_mode -eq '1') {
|
||||
Write-Output "> Disabling contextmenu entries for: Share, Include in library & Give access..."
|
||||
|
||||
regedit /s $PSScriptRoot\Regfiles\Disable_Share_from_context_menu.reg
|
||||
regedit /s $PSScriptRoot\Regfiles\Disable_Include_in_library_from_context_menu.reg
|
||||
regedit /s $PSScriptRoot\Regfiles\Disable_Give_access_to_context_menu.reg
|
||||
switch ($PSBoundParameters.Keys)
|
||||
{
|
||||
'RemoveApps'
|
||||
{
|
||||
RemoveApps
|
||||
}
|
||||
'DisableOnedrive'
|
||||
{
|
||||
RegImport "> Hiding the onedrive folder in windows explorer..." $PSScriptRoot\Regfiles\Hide_Onedrive_Folder.reg
|
||||
}
|
||||
'Disable3dObjects'
|
||||
{
|
||||
RegImport "> Hiding the 3D objects folder in windows explorer..." $PSScriptRoot\Regfiles\Hide_3D_Objects_Folder.reg
|
||||
}
|
||||
'DisableMusic'
|
||||
{
|
||||
RegImport "> Hiding the music folder in windows explorer..." $PSScriptRoot\Regfiles\Hide_Music_folder.reg
|
||||
}
|
||||
'DisableBingSearches'
|
||||
{
|
||||
RegImport "> Disabling bing in windows search..." $PSScriptRoot\Regfiles\Disable_Bing_Searches.reg
|
||||
}
|
||||
'DisableLockscreenTips'
|
||||
{
|
||||
RegImport "> Disabling tips & tricks on the lockscreen..." $PSScriptRoot\Regfiles\Disable_Lockscreen_Tips.reg
|
||||
}
|
||||
'DisableWindowsSuggestions'
|
||||
{
|
||||
RegImport "> Disabling tips, tricks and suggestions in the startmenu and settings..." $PSScriptRoot\Regfiles\Disable_Windows_Suggestions.reg
|
||||
}
|
||||
'DisableIncludeInLibrary'
|
||||
{
|
||||
RegImport "> Disabling 'Include in library' in the context menu..." $PSScriptRoot\Regfiles\Disable_Include_in_library_from_context_menu.reg
|
||||
}
|
||||
'DisableGiveAccessTo'
|
||||
{
|
||||
RegImport "> Disabling 'Give access to' in the context menu..." $PSScriptRoot\Regfiles\Disable_Give_access_to_context_menu.reg
|
||||
}
|
||||
'DisableShare'
|
||||
{
|
||||
RegImport "> Disabling 'Share' in the context menu..." $PSScriptRoot\Regfiles\Disable_Share_from_context_menu.reg
|
||||
}
|
||||
}
|
||||
|
||||
Write-Output ""
|
||||
|
||||
Reference in New Issue
Block a user