From d8979dc7e294412f0550dbd4f38ba1b8bc69fa53 Mon Sep 17 00:00:00 2001 From: Maximilian Cosmo Sitter <48606431+mcsitter@users.noreply.github.com> Date: Wed, 15 Jul 2020 15:27:07 +0200 Subject: [PATCH 01/32] FIX #240 and #259 The explorer process could not be killed, because powershell cannot convert the "Explorer.exe" value of type "System.String" to type "System.Diagnostics.Process". Description and solution in #240 . If issues still occur we could try the solution proposed in #259 --- Windows10SysPrepDebloater.ps1 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Windows10SysPrepDebloater.ps1 b/Windows10SysPrepDebloater.ps1 index df9d026..f97de1b 100644 --- a/Windows10SysPrepDebloater.ps1 +++ b/Windows10SysPrepDebloater.ps1 @@ -176,7 +176,7 @@ Function Protect-Privacy { Write-Output "Removing CloudStore from registry if it exists" $CloudStore = 'HKCU:\Software\Microsoft\Windows\CurrentVersion\CloudStore' If (Test-Path $CloudStore) { - Stop-Process Explorer.exe -Force + Stop-Process -Name explorer -Force Remove-Item $CloudStore -Recurse -Force Start-Process Explorer.exe -Wait } From cbb7ff8d670c67af3a9197f9b0cf2ec9a3cae537 Mon Sep 17 00:00:00 2001 From: Richard Newton Date: Sun, 16 Aug 2020 18:42:57 -0400 Subject: [PATCH 02/32] Update README.md --- README.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/README.md b/README.md index c92369b..d684ad5 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,6 @@ +# Warning +I do *not* take responsibility for what may happen to your system. This is at your own risk. + # Windows10Debloater Script/Utility/Application to debloat Windows 10 From 890c318872e60f2dddd4e54a0d80fc791c75aa22 Mon Sep 17 00:00:00 2001 From: tlejolivet Date: Tue, 18 Aug 2020 16:53:11 +0200 Subject: [PATCH 03/32] New simple designed UI for a better look ! --- Windows10DebloaterGUI.ps1 | 445 +++++++++++++++++++++++++------------- 1 file changed, 295 insertions(+), 150 deletions(-) diff --git a/Windows10DebloaterGUI.ps1 b/Windows10DebloaterGUI.ps1 index 587ff12..69c1c22 100644 --- a/Windows10DebloaterGUI.ps1 +++ b/Windows10DebloaterGUI.ps1 @@ -210,152 +210,270 @@ $global:WhiteListedAppsRegex = $global:WhiteListedApps -join '|' Add-Type -AssemblyName System.Windows.Forms [System.Windows.Forms.Application]::EnableVisualStyles() -#region begin GUI -$Form = New-Object System.Windows.Forms.Form -$Form.ClientSize = '800,500' -$Form.Text = "Windows10Debloater" -$Form.TopMost = $false +$Form = New-Object system.Windows.Forms.Form +$Form.ClientSize = New-Object System.Drawing.Point(500,570) +$Form.StartPosition = 'CenterScreen' +$Form.FormBorderStyle = 'FixedSingle' +$Form.MinimizeBox = $false +$Form.MaximizeBox = $false +$Form.ShowIcon = $false +$Form.text = "Windows10Debloader" +$Form.TopMost = $false +$Form.BackColor = [System.Drawing.ColorTranslator]::FromHtml("#252525") -$Debloat = New-Object System.Windows.Forms.Label -$Debloat.Text = "Debloat Options" -$Debloat.AutoSize = $true -$Debloat.Width = 25 -$Debloat.Height = 10 -$Debloat.Location = New-Object System.Drawing.Point(9, 8) -$Debloat.Font = 'Microsoft Sans Serif,12,style=Bold,Underline' +$DebloatPanel = New-Object system.Windows.Forms.Panel +$DebloatPanel.height = 160 +$DebloatPanel.width = 480 +$DebloatPanel.Anchor = 'top,right,left' +$DebloatPanel.location = New-Object System.Drawing.Point(10,10) +$RegistryPanel = New-Object system.Windows.Forms.Panel +$RegistryPanel.height = 80 +$RegistryPanel.width = 480 +$RegistryPanel.Anchor = 'top,right,left' +$RegistryPanel.location = New-Object System.Drawing.Point(10,180) -$CustomizeBlacklists = New-Object System.Windows.Forms.Button -$CustomizeBlacklists.Text = "Customize Blacklist" -$CustomizeBlacklists.Width = 140 -$CustomizeBlacklists.Height = 40 -$CustomizeBlacklists.Location = New-Object System.Drawing.Point(9, 32) -$CustomizeBlacklists.Font = 'Microsoft Sans Serif,10' +$CortanaPanel = New-Object system.Windows.Forms.Panel +$CortanaPanel.height = 120 +$CortanaPanel.width = 153 +$CortanaPanel.Anchor = 'top,right,left' +$CortanaPanel.location = New-Object System.Drawing.Point(10,270) -$RemoveAllBloatware = New-Object System.Windows.Forms.Button -$RemoveAllBloatware.Text = "Remove All Bloatware" -$RemoveAllBloatware.Width = 142 -$RemoveAllBloatware.Height = 40 -$RemoveAllBloatware.Location = New-Object System.Drawing.Point(8, 79) -$RemoveAllBloatware.Font = 'Microsoft Sans Serif,10' +$EdgePanel = New-Object system.Windows.Forms.Panel +$EdgePanel.height = 120 +$EdgePanel.width = 154 +$EdgePanel.Anchor = 'top,right,left' +$EdgePanel.location = New-Object System.Drawing.Point(173,270) -$RemoveBlacklist = New-Object System.Windows.Forms.Button -$RemoveBlacklist.Text = "Remove Bloatware With Customized Blacklist" -$RemoveBlacklist.Width = 205 -$RemoveBlacklist.Height = 37 -$RemoveBlacklist.Location = New-Object System.Drawing.Point(9, 124) -$RemoveBlacklist.Font = 'Microsoft Sans Serif,10' +$DarkThemePanel = New-Object system.Windows.Forms.Panel +$DarkThemePanel.height = 120 +$DarkThemePanel.width = 153 +$DarkThemePanel.Anchor = 'top,right,left' +$DarkThemePanel.location = New-Object System.Drawing.Point(337,270) -$Label1 = New-Object System.Windows.Forms.Label -$Label1.Text = "Revert Registry Changes" -$Label1.AutoSize = $true -$Label1.Width = 25 -$Label1.Height = 10 -$Label1.Location = New-Object System.Drawing.Point(254, 7) -$Label1.Font = 'Microsoft Sans Serif,12,style=Bold,Underline' +$OtherPanel = New-Object system.Windows.Forms.Panel +$OtherPanel.height = 160 +$OtherPanel.width = 480 +$OtherPanel.Anchor = 'top,right,left' +$OtherPanel.location = New-Object System.Drawing.Point(10,400) -$RevertChange = New-Object System.Windows.Forms.Button -$RevertChange.Text = "Revert Registry Changes" -$RevertChange.Width = 113 -$RevertChange.Height = 36 -$RevertChange.Location = New-Object System.Drawing.Point(254, 32) -$RevertChange.Font = 'Microsoft Sans Serif,10' +$Debloat = New-Object system.Windows.Forms.Label +$Debloat.text = "DEBLOAT OPTIONS" +$Debloat.AutoSize = $true +$Debloat.width = 457 +$Debloat.height = 142 +$Debloat.Anchor = 'top,right,left' +$Debloat.location = New-Object System.Drawing.Point(10,9) +$Debloat.Font = New-Object System.Drawing.Font('Consolas',15,[System.Drawing.FontStyle]([System.Drawing.FontStyle]::Bold)) +$Debloat.ForeColor = [System.Drawing.ColorTranslator]::FromHtml("#eeeeee") -$Label2 = New-Object System.Windows.Forms.Label -$Label2.Text = "Optional Changes/Fixes" -$Label2.AutoSize = $true -$Label2.Width = 25 -$Label2.Height = 10 -$Label2.Location = New-Object System.Drawing.Point(9, 193) -$Label2.Font = 'Microsoft Sans Serif,12,style=Bold,Underline' +$CustomizeBlacklist = New-Object system.Windows.Forms.Button +$CustomizeBlacklist.FlatStyle = 'Flat' +$CustomizeBlacklist.text = "CUSTOMISE BLACKLIST" +$CustomizeBlacklist.width = 460 +$CustomizeBlacklist.height = 30 +$CustomizeBlacklist.Anchor = 'top,right,left' +$CustomizeBlacklist.location = New-Object System.Drawing.Point(10,40) +$CustomizeBlacklist.Font = New-Object System.Drawing.Font('Consolas',9) +$CustomizeBlacklist.ForeColor = [System.Drawing.ColorTranslator]::FromHtml("#eeeeee") -$DisableCortana = New-Object System.Windows.Forms.Button -$DisableCortana.Text = "Disable Cortana" -$DisableCortana.Width = 111 -$DisableCortana.Height = 36 -$DisableCortana.Location = New-Object System.Drawing.Point(9, 217) -$DisableCortana.Font = 'Microsoft Sans Serif,10' +$RemoveAllBloatware = New-Object system.Windows.Forms.Button +$RemoveAllBloatware.FlatStyle = 'Flat' +$RemoveAllBloatware.text = "REMOVE ALL BLOATWARE" +$RemoveAllBloatware.width = 460 +$RemoveAllBloatware.height = 30 +$RemoveAllBloatware.Anchor = 'top,right,left' +$RemoveAllBloatware.location = New-Object System.Drawing.Point(10,80) +$RemoveAllBloatware.Font = New-Object System.Drawing.Font('Consolas',9) +$RemoveAllBloatware.ForeColor = [System.Drawing.ColorTranslator]::FromHtml("#eeeeee") -$EnableCortana = New-Object System.Windows.Forms.Button -$EnableCortana.Text = "Enable Cortana" -$EnableCortana.Width = 112 -$EnableCortana.Height = 36 -$EnableCortana.Location = New-Object System.Drawing.Point(9, 260) -$EnableCortana.Font = 'Microsoft Sans Serif,10' +$RemoveBlacklistedBloatware = New-Object system.Windows.Forms.Button +$RemoveBlacklistedBloatware.FlatStyle = 'Flat' +$RemoveBlacklistedBloatware.text = "REMOVE BLOATWARE WITH CUSTOM BLACKLIST" +$RemoveBlacklistedBloatware.width = 460 +$RemoveBlacklistedBloatware.height = 30 +$RemoveBlacklistedBloatware.Anchor = 'top,right,left' +$RemoveBlacklistedBloatware.location = New-Object System.Drawing.Point(10,120) +$RemoveBlacklistedBloatware.Font = New-Object System.Drawing.Font('Consolas',9) +$RemoveBlacklistedBloatware.ForeColor = [System.Drawing.ColorTranslator]::FromHtml("#eeeeee") -$StopEdgePDFTakeover = New-Object System.Windows.Forms.Button -$StopEdgePDFTakeover.Text = "Stop Edge PDF Takeover" -$StopEdgePDFTakeover.Width = 175 -$StopEdgePDFTakeover.Height = 35 -$StopEdgePDFTakeover.Location = New-Object System.Drawing.Point(155, 217) -$StopEdgePDFTakeover.Font = 'Microsoft Sans Serif,10' +$Registry = New-Object system.Windows.Forms.Label +$Registry.text = "REGISTRY CHANGES" +$Registry.AutoSize = $true +$Registry.width = 457 +$Registry.height = 142 +$Registry.Anchor = 'top,right,left' +$Registry.location = New-Object System.Drawing.Point(10,10) +$Registry.Font = New-Object System.Drawing.Font('Consolas',15,[System.Drawing.FontStyle]([System.Drawing.FontStyle]::Bold)) +$Registry.ForeColor = [System.Drawing.ColorTranslator]::FromHtml("#eeeeee") -$EnableEdgePDFTakeover = New-Object System.Windows.Forms.Button -$EnableEdgePDFTakeover.Text = "Enable Edge PDF Takeover" -$EnableEdgePDFTakeover.Width = 185 -$EnableEdgePDFTakeover.Height = 35 -$EnableEdgePDFTakeover.Location = New-Object System.Drawing.Point(155, 260) -$EnableEdgePDFTakeover.Font = 'Microsoft Sans Serif,10' +$RevertChanges = New-Object system.Windows.Forms.Button +$RevertChanges.FlatStyle = 'Flat' +$RevertChanges.text = "REVERT REGISTRY CHANGES" +$RevertChanges.width = 460 +$RevertChanges.height = 30 +$RevertChanges.Anchor = 'top,right,left' +$RevertChanges.location = New-Object System.Drawing.Point(10,40) +$RevertChanges.Font = New-Object System.Drawing.Font('Consolas',9) +$RevertChanges.ForeColor = [System.Drawing.ColorTranslator]::FromHtml("#eeeeee") -$DisableTelemetry = New-Object System.Windows.Forms.Button -$DisableTelemetry.Text = "Disable Telemetry/Tasks" -$DisableTelemetry.Width = 152 -$DisableTelemetry.Height = 35 -$DisableTelemetry.Location = New-Object System.Drawing.Point(365, 260) -$DisableTelemetry.Font = 'Microsoft Sans Serif,10' +$Cortana = New-Object system.Windows.Forms.Label +$Cortana.text = "CORTANA" +$Cortana.AutoSize = $true +$Cortana.width = 457 +$Cortana.height = 142 +$Cortana.Anchor = 'top,right,left' +$Cortana.location = New-Object System.Drawing.Point(10,10) +$Cortana.Font = New-Object System.Drawing.Font('Consolas',15,[System.Drawing.FontStyle]([System.Drawing.FontStyle]::Bold)) +$Cortana.ForeColor = [System.Drawing.ColorTranslator]::FromHtml("#eeeeee") -$RemoveRegkeys = New-Object System.Windows.Forms.Button -$RemoveRegkeys.Text = "Remove Bloatware Regkeys" -$RemoveRegkeys.Width = 188 -$RemoveRegkeys.Height = 35 -$RemoveRegkeys.Location = New-Object System.Drawing.Point(540, 260) -$RemoveRegkeys.Font = 'Microsoft Sans Serif,10' +$EnableCortana = New-Object system.Windows.Forms.Button +$EnableCortana.FlatStyle = 'Flat' +$EnableCortana.text = "ENABLE" +$EnableCortana.width = 133 +$EnableCortana.height = 30 +$EnableCortana.Anchor = 'top,right,left' +$EnableCortana.location = New-Object System.Drawing.Point(10,40) +$EnableCortana.Font = New-Object System.Drawing.Font('Consolas',9) +$EnableCortana.ForeColor = [System.Drawing.ColorTranslator]::FromHtml("#eeeeee") -$UnpinStartMenuTiles = New-Object System.Windows.Forms.Button -$UnpinStartMenuTiles.Text = "Unpin Tiles From Start Menu" -$UnpinStartMenuTiles.Width = 190 -$UnpinStartMenuTiles.Height = 35 -$UnpinStartMenuTiles.Location = New-Object System.Drawing.Point(540, 217) -$UnpinStartMenuTiles.Font = 'Microsoft Sans Serif,10' +$DisableCortana = New-Object system.Windows.Forms.Button +$DisableCortana.FlatStyle = 'Flat' +$DisableCortana.text = "DISABLE" +$DisableCortana.width = 133 +$DisableCortana.height = 30 +$DisableCortana.Anchor = 'top,right,left' +$DisableCortana.location = New-Object System.Drawing.Point(10,80) +$DisableCortana.Font = New-Object System.Drawing.Font('Consolas',9) +$DisableCortana.ForeColor = [System.Drawing.ColorTranslator]::FromHtml("#eeeeee") -$RemoveOnedrive = New-Object System.Windows.Forms.Button -$RemoveOnedrive.Text = "Uninstall OneDrive" -$RemoveOnedrive.Width = 152 -$RemoveOnedrive.Height = 35 -$RemoveOnedrive.Location = New-Object System.Drawing.Point(365, 217) -$RemoveOnedrive.Font = 'Microsoft Sans Serif,10' +$Edge = New-Object system.Windows.Forms.Label +$Edge.text = "EDGE PDF" +$Edge.AutoSize = $true +$Edge.width = 457 +$Edge.height = 142 +$Edge.Anchor = 'top,right,left' +$Edge.location = New-Object System.Drawing.Point(10,10) +$Edge.Font = New-Object System.Drawing.Font('Consolas',15,[System.Drawing.FontStyle]([System.Drawing.FontStyle]::Bold)) +$Edge.ForeColor = [System.Drawing.ColorTranslator]::FromHtml("#eeeeee") -#$FixWhitelist = New-Object System.Windows.Forms.Button -#$FixWhitelist.Text = "Fix Whitelisted Apps" -#$FixWhitelist.Width = 130 -#$FixWhitelist.Height = 37 -#$FixWhitelist.Location = New-Object System.Drawing.Point(254, 74) -#$FixWhitelist.Font = 'Microsoft Sans Serif,10' +$EnableEdgePDFTakeover = New-Object system.Windows.Forms.Button +$EnableEdgePDFTakeover.FlatStyle = 'Flat' +$EnableEdgePDFTakeover.text = "ENABLE" +$EnableEdgePDFTakeover.width = 134 +$EnableEdgePDFTakeover.height = 30 +$EnableEdgePDFTakeover.Anchor = 'top,right,left' +$EnableEdgePDFTakeover.location = New-Object System.Drawing.Point(10,40) +$EnableEdgePDFTakeover.Font = New-Object System.Drawing.Font('Consolas',9) +$EnableEdgePDFTakeover.ForeColor = [System.Drawing.ColorTranslator]::FromHtml("#eeeeee") -$InstallNet35 = New-Object System.Windows.Forms.Button -$InstallNet35.Text = "Install .NET v3.5" -$InstallNet35.Width = 152 -$InstallNet35.Height = 39 -$InstallNet35.Location = New-Object System.Drawing.Point(169, 335) -$InstallNet35.Font = 'Microsoft Sans Serif,10' +$DisableEdgePDFTakeover = New-Object system.Windows.Forms.Button +$DisableEdgePDFTakeover.FlatStyle = 'Flat' +$DisableEdgePDFTakeover.text = "DISABLE" +$DisableEdgePDFTakeover.width = 134 +$DisableEdgePDFTakeover.height = 30 +$DisableEdgePDFTakeover.Anchor = 'top,right,left' +$DisableEdgePDFTakeover.location = New-Object System.Drawing.Point(10,80) +$DisableEdgePDFTakeover.Font = New-Object System.Drawing.Font('Consolas',9) +$DisableEdgePDFTakeover.ForeColor = [System.Drawing.ColorTranslator]::FromHtml("#eeeeee") -$EnableDarkMode = New-Object System.Windows.Forms.Button -$EnableDarkMode.Text = "Enable Dark Mode" -$EnableDarkMode.Width = 152 -$EnableDarkMode.Height = 39 -$EnableDarkMode.Location = New-Object System.Drawing.Point(9, 335) -$EnableDarkMode.Font = 'Microsoft Sans Serif,10' +$Theme = New-Object system.Windows.Forms.Label +$Theme.text = "DARK THEME" +$Theme.AutoSize = $true +$Theme.width = 457 +$Theme.height = 142 +$Theme.Anchor = 'top,right,left' +$Theme.location = New-Object System.Drawing.Point(10,10) +$Theme.Font = New-Object System.Drawing.Font('Consolas',15,[System.Drawing.FontStyle]([System.Drawing.FontStyle]::Bold)) +$Theme.ForeColor = [System.Drawing.ColorTranslator]::FromHtml("#eeeeee") -$DisableDarkMode = New-Object System.Windows.Forms.Button -$DisableDarkMode.Text = "Disable Dark Mode" -$DisableDarkMode.Width = 152 -$DisableDarkMode.Height = 39 -$DisableDarkMode.Location = New-Object System.Drawing.Point(9, 385) -$DisableDarkMode.Font = 'Microsoft Sans Serif,10' +$EnableDarkMode = New-Object system.Windows.Forms.Button +$EnableDarkMode.FlatStyle = 'Flat' +$EnableDarkMode.text = "ENABLE" +$EnableDarkMode.width = 133 +$EnableDarkMode.height = 30 +$EnableDarkMode.Anchor = 'top,right,left' +$EnableDarkMode.location = New-Object System.Drawing.Point(10,40) +$EnableDarkMode.Font = New-Object System.Drawing.Font('Consolas',9) +$EnableDarkMode.ForeColor = [System.Drawing.ColorTranslator]::FromHtml("#eeeeee") +$DisableDarkMode = New-Object system.Windows.Forms.Button +$DisableDarkMode.FlatStyle = 'Flat' +$DisableDarkMode.text = "DISABLE" +$DisableDarkMode.width = 133 +$DisableDarkMode.height = 30 +$DisableDarkMode.Anchor = 'top,right,left' +$DisableDarkMode.location = New-Object System.Drawing.Point(10,80) +$DisableDarkMode.Font = New-Object System.Drawing.Font('Consolas',9) +$DisableDarkMode.ForeColor = [System.Drawing.ColorTranslator]::FromHtml("#eeeeee") +$Other = New-Object system.Windows.Forms.Label +$Other.text = "OTHER CHANGES & FIXES" +$Other.AutoSize = $true +$Other.width = 457 +$Other.height = 142 +$Other.Anchor = 'top,right,left' +$Other.location = New-Object System.Drawing.Point(10,10) +$Other.Font = New-Object System.Drawing.Font('Consolas',15,[System.Drawing.FontStyle]([System.Drawing.FontStyle]::Bold)) +$Other.ForeColor = [System.Drawing.ColorTranslator]::FromHtml("#eeeeee") -$Form.controls.AddRange(@($Debloat, $CustomizeBlacklists, $RemoveAllBloatware, $RemoveBlacklist, $Label1, $RevertChange, $Label2, $DisableCortana, $EnableCortana, $StopEdgePDFTakeover, $EnableEdgePDFTakeover, $DisableTelemetry, $RemoveRegkeys, $UnpinStartMenuTiles, $RemoveOnedrive, $FixWhitelist, $RemoveBloatNoBlacklist, $InstallNet35, $EnableDarkMode, $DisableDarkMode)) +$RemoveOnedrive = New-Object system.Windows.Forms.Button +$RemoveOnedrive.FlatStyle = 'Flat' +$RemoveOnedrive.text = "UNINSTALL ONEDRIVE" +$RemoveOnedrive.width = 225 +$RemoveOnedrive.height = 30 +$RemoveOnedrive.Anchor = 'top,right,left' +$RemoveOnedrive.location = New-Object System.Drawing.Point(10,40) +$RemoveOnedrive.Font = New-Object System.Drawing.Font('Consolas',9) +$RemoveOnedrive.ForeColor = [System.Drawing.ColorTranslator]::FromHtml("#eeeeee") + +$UnpinStartMenuTiles = New-Object system.Windows.Forms.Button +$UnpinStartMenuTiles.FlatStyle = 'Flat' +$UnpinStartMenuTiles.text = "UNPIN TILES FROM START MENU" +$UnpinStartMenuTiles.width = 225 +$UnpinStartMenuTiles.height = 30 +$UnpinStartMenuTiles.Anchor = 'top,right,left' +$UnpinStartMenuTiles.location = New-Object System.Drawing.Point(245,40) +$UnpinStartMenuTiles.Font = New-Object System.Drawing.Font('Consolas',9) +$UnpinStartMenuTiles.ForeColor = [System.Drawing.ColorTranslator]::FromHtml("#eeeeee") + +$DisableTelemetry = New-Object system.Windows.Forms.Button +$DisableTelemetry.FlatStyle = 'Flat' +$DisableTelemetry.text = "DISABLE TELEMETRY / TASKS" +$DisableTelemetry.width = 225 +$DisableTelemetry.height = 30 +$DisableTelemetry.Anchor = 'top,right,left' +$DisableTelemetry.location = New-Object System.Drawing.Point(10,80) +$DisableTelemetry.Font = New-Object System.Drawing.Font('Consolas',9) +$DisableTelemetry.ForeColor = [System.Drawing.ColorTranslator]::FromHtml("#eeeeee") + +$RemoveRegkeys = New-Object system.Windows.Forms.Button +$RemoveRegkeys.FlatStyle = 'Flat' +$RemoveRegkeys.text = "REMOVE BLOATWARE REGKEYS" +$RemoveRegkeys.width = 225 +$RemoveRegkeys.height = 30 +$RemoveRegkeys.Anchor = 'top,right,left' +$RemoveRegkeys.location = New-Object System.Drawing.Point(245,80) +$RemoveRegkeys.Font = New-Object System.Drawing.Font('Consolas',9) +$RemoveRegkeys.ForeColor = [System.Drawing.ColorTranslator]::FromHtml("#eeeeee") + +$InstallNet35 = New-Object system.Windows.Forms.Button +$InstallNet35.FlatStyle = 'Flat' +$InstallNet35.text = "INSTALL .NET V3.5" +$InstallNet35.width = 460 +$InstallNet35.height = 30 +$InstallNet35.Anchor = 'top,right,left' +$InstallNet35.location = New-Object System.Drawing.Point(10,120) +$InstallNet35.Font = New-Object System.Drawing.Font('Consolas',9) +$InstallNet35.ForeColor = [System.Drawing.ColorTranslator]::FromHtml("#eeeeee") + +$Form.controls.AddRange(@($RegistryPanel,$DebloatPanel,$CortanaPanel,$EdgePanel,$DarkThemePanel,$OtherPanel)) +$DebloatPanel.controls.AddRange(@($Debloat,$CustomizeBlacklist,$RemoveAllBloatware,$RemoveBlacklistedBloatware)) +$RegistryPanel.controls.AddRange(@($Registry,$RevertChanges)) +$CortanaPanel.controls.AddRange(@($Cortana,$EnableCortana,$DisableCortana)) +$EdgePanel.controls.AddRange(@($EnableEdgePDFTakeover,$DisableEdgePDFTakeover,$Edge)) +$DarkThemePanel.controls.AddRange(@($Theme,$DisableDarkMode,$EnableDarkMode)) +$OtherPanel.controls.AddRange(@($Other,$RemoveOnedrive,$InstallNet35,$UnpinStartMenuTiles,$DisableTelemetry,$RemoveRegkeys)) $DebloatFolder = "C:\Temp\Windows10Debloater" If (Test-Path $DebloatFolder) { @@ -371,18 +489,38 @@ Else { Start-Transcript -OutputDirectory "${DebloatFolder}" #region gui events { -$CustomizeBlacklists.Add_Click( { - $CustomizeForm = New-Object System.Windows.Forms.Form - $CustomizeForm.ClientSize = '600,400' - $CustomizeForm.Text = "Customize Whitelist and Blacklist" - $CustomizeForm.TopMost = $false - $CustomizeForm.AutoScroll = $true +$CustomizeBlacklist.Add_Click( { + $CustomizeForm = New-Object System.Windows.Forms.Form + $CustomizeForm.ClientSize = New-Object System.Drawing.Point(500,570) + $CustomizeForm.StartPosition = 'CenterScreen' + $CustomizeForm.FormBorderStyle = 'FixedSingle' + $CustomizeForm.MinimizeBox = $false + $CustomizeForm.MaximizeBox = $false + $CustomizeForm.ShowIcon = $false + $CustomizeForm.Text = "Customize Whitelist and Blacklist" + $CustomizeForm.TopMost = $false + $CustomizeForm.AutoScroll = $false + $CustomizeForm.BackColor = [System.Drawing.ColorTranslator]::FromHtml("#252525") - $SaveList = New-Object System.Windows.Forms.Button - $SaveList.Text = "Save custom Whitelist and Blacklist to custom-lists.ps1" - $SaveList.AutoSize = $true - $SaveList.Location = New-Object System.Drawing.Point(200, 5) - $CustomizeForm.controls.Add($SaveList) + $ListPanel = New-Object system.Windows.Forms.Panel + $ListPanel.height = 510 + $ListPanel.width = 480 + $ListPanel.Anchor = 'top,right,left' + $ListPanel.location = New-Object System.Drawing.Point(10,10) + $ListPanel.AutoScroll = $true + $ListPanel.BackColor = [System.Drawing.ColorTranslator]::FromHtml("#252525") + + + $SaveList = New-Object System.Windows.Forms.Button + $SaveList.FlatStyle = 'Flat' + $SaveList.Text = "Save custom Whitelist and Blacklist to custom-lists.ps1" + $SaveList.width = 480 + $SaveList.height = 30 + $SaveList.Location = New-Object System.Drawing.Point(10, 530) + $SaveList.Font = New-Object System.Drawing.Font('Consolas',9) + $SaveList.ForeColor = [System.Drawing.ColorTranslator]::FromHtml("#eeeeee") + + $CustomizeForm.controls.AddRange(@($SaveList,$ListPanel)) $SaveList.Add_Click( { $ErrorActionPreference = 'SilentlyContinue' @@ -421,25 +559,33 @@ $CustomizeBlacklists.Add_Click( { [bool] $enabled, [Parameter(Mandatory)] [bool] $checked, + [Parameter(Mandatory)] + [bool] $autocheck, [string] $notes ) $label = New-Object System.Windows.Forms.Label - $label.Location = New-Object System.Drawing.Point(2, (30 + $position * 16)) + $label.Location = New-Object System.Drawing.Point(0, (2 + $position * 25)) $label.Text = $notes - $label.Width = 300 + $label.Font = New-Object System.Drawing.Font('Consolas',8) + $label.Width = 150 $label.Height = 16 $Label.TextAlign = [System.Drawing.ContentAlignment]::TopRight - $CustomizeForm.controls.Add($label) + $label.ForeColor = [System.Drawing.ColorTranslator]::FromHtml("#888888") + $ListPanel.controls.AddRange(@($label)) $Checkbox = New-Object System.Windows.Forms.CheckBox $Checkbox.Text = $appName - $Checkbox.Location = New-Object System.Drawing.Point(320, (30 + $position * 16)) + $CheckBox.Font = New-Object System.Drawing.Font('Consolas',8) + $CheckBox.FlatStyle = 'Flat' + $CheckBox.ForeColor = [System.Drawing.ColorTranslator]::FromHtml("#eeeeee") + $Checkbox.Location = New-Object System.Drawing.Point(160, (0 + $position * 25)) $Checkbox.Autosize = 1; $Checkbox.Checked = $checked $Checkbox.Enabled = $enabled - $CustomizeForm.controls.Add($CheckBox) + $CheckBox.AutoCheck = $autocheck + $ListPanel.controls.AddRange(@($CheckBox)) } @@ -455,8 +601,8 @@ $CustomizeBlacklists.Add_Click( { if ( $null -notmatch $Installed -and $Installed -cmatch $item) { $string += "Installed" } if ( $null -notmatch $AllUsers -and $AllUsers -cmatch $item) { $string += " AllUsers" } if ( $null -notmatch $Online -and $Online -cmatch $item) { $string += " Online" } - $string += " NONREMOVABLE" - AddAppToCustomizeForm $checkboxCounter $item $false $false $string + $string += " NON-REMOVABLE" + AddAppToCustomizeForm $checkboxCounter $item $true $false $false $string ++$checkboxCounter } ForEach ( $item in $global:WhiteListedApps ) { @@ -466,7 +612,7 @@ $CustomizeBlacklists.Add_Click( { if ( $null -notmatch $Installed -and $Installed -cmatch $item) { $string += "Installed" } if ( $null -notmatch $AllUsers -and $AllUsers -cmatch $item) { $string += " AllUsers" } if ( $null -notmatch $Online -and $Online -cmatch $item) { $string += " Online" } - AddAppToCustomizeForm $checkboxCounter $item $true $false $string + AddAppToCustomizeForm $checkboxCounter $item $true $false $true $string ++$checkboxCounter } ForEach ( $item in $global:Bloatware ) { @@ -476,7 +622,7 @@ $CustomizeBlacklists.Add_Click( { if ( $null -notmatch $Installed -and $Installed -cmatch $item) { $string += "Installed" } if ( $null -notmatch $AllUsers -and $AllUsers -cmatch $item) { $string += " AllUsers" } if ( $null -notmatch $Online -and $Online -cmatch $item) { $string += " Online" } - AddAppToCustomizeForm $checkboxCounter $item $true $true $string + AddAppToCustomizeForm $checkboxCounter $item $true $true $true $string ++$checkboxCounter } ForEach ( $item in $AllUsers ) { @@ -486,7 +632,7 @@ $CustomizeBlacklists.Add_Click( { if ( $null -notmatch $global:BloatwareRegex -and $item -cmatch $global:BloatwareRegex ) { continue } if ( $null -notmatch $Installed -and $Installed -cmatch $item) { $string += " Installed" } if ( $null -notmatch $Online -and $Online -cmatch $item) { $string += " Online" } - AddAppToCustomizeForm $checkboxCounter $item $true $true $string + AddAppToCustomizeForm $checkboxCounter $item $true $true $true $string ++$checkboxCounter } ForEach ( $item in $Installed ) { @@ -496,7 +642,7 @@ $CustomizeBlacklists.Add_Click( { if ( $null -notmatch $global:BloatwareRegex -and $item -cmatch $global:BloatwareRegex ) { continue } if ( $null -notmatch $AllUsers -and $AllUsers -cmatch $item) { continue } if ( $null -notmatch $Online -and $Online -cmatch $item) { $string += " Online" } - AddAppToCustomizeForm $checkboxCounter $item $true $true $string + AddAppToCustomizeForm $checkboxCounter $item $true $true $true $string ++$checkboxCounter } ForEach ( $item in $Online ) { @@ -506,15 +652,14 @@ $CustomizeBlacklists.Add_Click( { if ( $null -notmatch $global:BloatwareRegex -and $item -cmatch $global:BloatwareRegex ) { continue } if ( $null -notmatch $Installed -and $Installed -cmatch $item) { continue } if ( $null -notmatch $AllUsers -and $AllUsers -cmatch $item) { continue } - AddAppToCustomizeForm $checkboxCounter $item $true $true $string + AddAppToCustomizeForm $checkboxCounter $item $true $true $true $string ++$checkboxCounter } [void]$CustomizeForm.ShowDialog() - }) -$RemoveBlacklist.Add_Click( { +$RemoveBlacklistedBloatware.Add_Click( { $ErrorActionPreference = 'SilentlyContinue' Function DebloatBlacklist { Write-Host "Requesting removal of $global:BloatwareRegex" @@ -788,7 +933,7 @@ $RemoveAllBloatware.Add_Click( { Write-Host "Finished all tasks. `n" } ) -$RevertChange.Add_Click( { +$RevertChanges.Add_Click( { $ErrorActionPreference = 'SilentlyContinue' #This function will revert the changes you made when running the Start-Debloat function. @@ -915,7 +1060,7 @@ $DisableCortana.Add_Click( { Set-ItemProperty $Cortana3 HarvestContacts -Value 0 Write-Host "Cortana has been disabled." }) -$StopEdgePDFTakeover.Add_Click( { +$DisableEdgePDFTakeover.Add_Click( { $ErrorActionPreference = 'SilentlyContinue' #Stops edge from taking over as the default .PDF viewer Write-Host "Stopping Edge from taking over as the default .PDF viewer" From e5eb03872579e2a8c4bf94b03042a19679f0a3a6 Mon Sep 17 00:00:00 2001 From: tlejolivet Date: Mon, 5 Oct 2020 09:38:30 +0200 Subject: [PATCH 04/32] Correction of the window title --- Windows10DebloaterGUI.ps1 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Windows10DebloaterGUI.ps1 b/Windows10DebloaterGUI.ps1 index 69c1c22..83812db 100644 --- a/Windows10DebloaterGUI.ps1 +++ b/Windows10DebloaterGUI.ps1 @@ -217,7 +217,7 @@ $Form.FormBorderStyle = 'FixedSingle' $Form.MinimizeBox = $false $Form.MaximizeBox = $false $Form.ShowIcon = $false -$Form.text = "Windows10Debloader" +$Form.text = "Windows10Debloater" $Form.TopMost = $false $Form.BackColor = [System.Drawing.ColorTranslator]::FromHtml("#252525") From bd372d5f2b649b1878ad6f0017ef0d326cc5ae28 Mon Sep 17 00:00:00 2001 From: Zoran Jankov Date: Fri, 23 Oct 2020 12:22:20 +0200 Subject: [PATCH 05/32] Update README.md --- README.md | 28 +++++++++++++++------------- 1 file changed, 15 insertions(+), 13 deletions(-) diff --git a/README.md b/README.md index d684ad5..41e205f 100644 --- a/README.md +++ b/README.md @@ -1,15 +1,17 @@ -# Warning -I do *not* take responsibility for what may happen to your system. This is at your own risk. # Windows10Debloater Script/Utility/Application to debloat Windows 10 -# How To Run the Windows10Debloater.ps1 and the Windows10DebloaterGUI.ps1 files +## Disclaimer +I do ***not*** take responsibility for what may happen to your system. This is at your own risk. + + +## How To Run the Windows10Debloater.ps1 and the Windows10DebloaterGUI.ps1 files There are different methods of running the PowerShell script. The methods are as follows: -First Method: +### First Method: 1) Download the .zip file on the main page of the github and extract the .zip file to your desired location 2) Once extracted, open PowerShell (or PowerShell ISE) as an Administrator @@ -21,7 +23,7 @@ First Method: e.g. - `.\Windows10DebloaterGUI.ps1` -Second Method: +### Second Method: 1) Download the .zip file on the main page of the github and extract the .zip file to your desired location 2) Right click the PowerShell file that you'd like to run and click on "Run With PowerShell" @@ -30,7 +32,7 @@ Second Method: Remember this script NEEDS to be run as admin in order to function properly. -# How To Run the Windows10SysPrepDebloater.ps1 file +## How To Run the Windows10SysPrepDebloater.ps1 file For the WindowsSysPrepDebloater.ps1 file, there are a couple of parameters that you can run so that you can specify which functions are used. The parameters are: `-SysPrep, -Debloat`. @@ -45,7 +47,7 @@ To run this with parameters, do the following: e.g. - `.\Windows10SysPrepDebloater.ps1 -Sysprep, -Debloat -Privacy` -# Sysprep, Interactive, and GUI Application +## Sysprep, Interactive, and GUI Application There are now 3 versions of my Windows10Debloater - There is an interactive version, a GUI app version, and a pure silent version. @@ -55,7 +57,7 @@ Windows10Debloater.ps1 - This interactive version is what it implies - a Windows Windows10DebloaterGUI.ps1 There is now a GUI Application named Windows10DebloaterGUI.ps1 with buttons to perform all of the functions that the scripts do. This is better for the average user who does not want to work with code, or if you'd prefer to just see an application screen. -# Switch Parameters +## Switch Parameters There are 3 switch parameters in the Windows10SysPrepDebloater.ps1 script. @@ -67,7 +69,7 @@ Remove-Keys removes registry keys leftover that are associated with the bloatwar Third, Protect-Privacy adds and/or changes registry keys to stop some telemetry functions, stops Cortana from being used as your Search Index, disables "unneccessary" scheduled tasks, and more. -# This script will remove the bloatware from Windows 10 when using Remove-AppXPackage/Remove-AppXProvisionedPackage, and then delete specific registry keys that are were not removed beforehand. For best results, this script should be ran before a user profile is configured, otherwise you will likely see that apps that should have been removed will remain, and if they are removed you will find broken tiles on the start menu. +**This script will remove the bloatware from Windows 10 when using Remove-AppXPackage/Remove-AppXProvisionedPackage, and then delete specific registry keys that are were not removed beforehand. For best results, this script should be ran before a user profile is configured, otherwise you will likely see that apps that should have been removed will remain, and if they are removed you will find broken tiles on the start menu**. These registry keys are: @@ -92,7 +94,7 @@ Enable-EdgePDF The Revert option reinstalls the bloatware and changes your registry keys back to default. -# The scheduled tasks that are disabled are: +## The scheduled tasks that are disabled are: XblGameSaveTaskLogon, XblGameSaveTask, @@ -102,7 +104,7 @@ DmClient These scheduled tasks that are disabled have absolutely no impact on the function of the OS. -# Bloatware that is removed: +## Bloatware that is removed: 3DBuilder, ActiproSoftware, @@ -169,10 +171,10 @@ Xbox Identity Provider, Zune Music, Zune Video. -# Quick download link +## Quick download link `iex ((New-Object System.Net.WebClient).DownloadString('https://git.io/debloat'))` -# Credits +## Credits Thank you to a60wattfish, abulgatz, xsisbest, Damian, Vikingat-RAGE, and Reddit user /u/GavinEke for some of the suggestions and fixes that I have placed into my scripts. You all have done a fantastic job! From a654a4571b51409b954c5d8b03e806e0befbb80a Mon Sep 17 00:00:00 2001 From: Zoran Jankov Date: Fri, 23 Oct 2020 12:31:56 +0200 Subject: [PATCH 06/32] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 41e205f..f8f9a67 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,7 @@ Script/Utility/Application to debloat Windows 10 ## Disclaimer -I do ***not*** take responsibility for what may happen to your system. This is at your own risk. +I do ***NOT*** take responsibility for what may happen to your system. This is at your own risk. ## How To Run the Windows10Debloater.ps1 and the Windows10DebloaterGUI.ps1 files From d1c3fa3923c31507bd36a8dd27e1ac73e98685b2 Mon Sep 17 00:00:00 2001 From: Zoran Jankov Date: Fri, 23 Oct 2020 12:39:38 +0200 Subject: [PATCH 07/32] Update README.md --- README.md | 25 ++++++++++++++++--------- 1 file changed, 16 insertions(+), 9 deletions(-) diff --git a/README.md b/README.md index f8f9a67..d5da6c4 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,9 @@ # Windows10Debloater +[![made-with-powershell](https://img.shields.io/badge/PowerShell-1f425f?logo=Powershell)](https://microsoft.com/PowerShell) +[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT) + Script/Utility/Application to debloat Windows 10 ## Disclaimer @@ -11,6 +14,7 @@ I do ***NOT*** take responsibility for what may happen to your system. This is a There are different methods of running the PowerShell script. The methods are as follows: + ### First Method: 1) Download the .zip file on the main page of the github and extract the .zip file to your desired location @@ -35,7 +39,7 @@ Remember this script NEEDS to be run as admin in order to function properly. ## How To Run the Windows10SysPrepDebloater.ps1 file For the WindowsSysPrepDebloater.ps1 file, there are a couple of parameters that you can run so that you can specify which functions are used. The parameters are: -`-SysPrep, -Debloat`. +`-SysPrep, -Debloat`. To run this with parameters, do the following: @@ -51,15 +55,16 @@ To run this with parameters, do the following: There are now 3 versions of my Windows10Debloater - There is an interactive version, a GUI app version, and a pure silent version. -Windows10SysPrepDebloater.ps1 - The silent version now utilizes the switch parameters: -Sysprep, -Debloat -Privacy. The silent version can be useful for deploying MDT Images/sysprepping or any other way you deploy Windows 10. This will work to remove the bloatware during the deployment process. +`Windows10SysPrepDebloater.ps1` - The silent version now utilizes the switch parameters: -Sysprep, -Debloat -Privacy. The silent version can be useful for deploying MDT Images/sysprepping or any other way you deploy Windows 10. This will work to remove the bloatware during the deployment process. -Windows10Debloater.ps1 - This interactive version is what it implies - a Windows10Debloater script with interactive prompts. This one should not be used for deployments that require a silent script with optional parameters. This script gives you choices with prompts as it runs so that you can make the choices of what the script does. +`Windows10Debloater.ps1` - This interactive version is what it implies - a Windows10Debloater script with interactive prompts. This one should not be used for deployments that require a silent script with optional parameters. This script gives you choices with prompts as it runs so that you can make the choices of what the script does. + +**`Windows10DebloaterGUI.ps1`** There is now a GUI Application named Windows10DebloaterGUI.ps1 with buttons to perform all of the functions that the scripts do. This is better for the average user who does not want to work with code, or if you'd prefer to just see an application screen. -Windows10DebloaterGUI.ps1 There is now a GUI Application named Windows10DebloaterGUI.ps1 with buttons to perform all of the functions that the scripts do. This is better for the average user who does not want to work with code, or if you'd prefer to just see an application screen. ## Switch Parameters -There are 3 switch parameters in the Windows10SysPrepDebloater.ps1 script. +There are 3 switch parameters in the `Windows10SysPrepDebloater.ps1` script. The first one is -SysPrep, which runs the command within a function: get-appxpackage | remove-appxpackage. This is useful since some administrators need that command to run first in order for machines to be able to properly provision the apps for removal. @@ -69,9 +74,10 @@ Remove-Keys removes registry keys leftover that are associated with the bloatwar Third, Protect-Privacy adds and/or changes registry keys to stop some telemetry functions, stops Cortana from being used as your Search Index, disables "unneccessary" scheduled tasks, and more. -**This script will remove the bloatware from Windows 10 when using Remove-AppXPackage/Remove-AppXProvisionedPackage, and then delete specific registry keys that are were not removed beforehand. For best results, this script should be ran before a user profile is configured, otherwise you will likely see that apps that should have been removed will remain, and if they are removed you will find broken tiles on the start menu**. +***This script will remove the bloatware from Windows 10 when using Remove-AppXPackage/Remove-AppXProvisionedPackage, and then delete specific registry keys that are were not removed beforehand. For best results, this script should be ran before a user profile is configured, otherwise you will likely see that apps that should have been removed will remain, and if they are removed you will find broken tiles on the start menu.*** -These registry keys are: + +### These registry keys are: EclipseManager, ActiproSoftwareLLC, @@ -80,14 +86,15 @@ Microsoft.XboxGameCallableUI You can choose to either 'Debloat' or 'Revert'. Depending on your choice, either one will run specific code to either debloat your Windows 10 machine. -The Debloat switch choice runs the following functions: + +### The Debloat switch choice runs the following functions: Debloat, Remove-Keys, Protect-Privacy, Stop-EdgePDF (If chosen) -The Revert switch choice runs the following functions: +### The Revert switch choice runs the following functions: Revert-Changes, Enable-EdgePDF From 1327e3f0fbb814e9555906353804398ff1fb3c0b Mon Sep 17 00:00:00 2001 From: Zoran Jankov Date: Fri, 23 Oct 2020 13:22:38 +0200 Subject: [PATCH 08/32] Update README.md --- README.md | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/README.md b/README.md index d5da6c4..a399927 100644 --- a/README.md +++ b/README.md @@ -7,7 +7,7 @@ Script/Utility/Application to debloat Windows 10 ## Disclaimer -I do ***NOT*** take responsibility for what may happen to your system. This is at your own risk. +I do **NOT** take responsibility for what may happen to your system. This is at your own risk. ## How To Run the Windows10Debloater.ps1 and the Windows10DebloaterGUI.ps1 files @@ -18,7 +18,7 @@ There are different methods of running the PowerShell script. The methods are as ### First Method: 1) Download the .zip file on the main page of the github and extract the .zip file to your desired location -2) Once extracted, open PowerShell (or PowerShell ISE) as an Administrator +2) Once extracted, open [PowerShell](https://docs.microsoft.com/en-us/powershell/scripting/overview?view=powershell-5.1) (or [PowerShell ISE](https://docs.microsoft.com/en-us/powershell/scripting/windows-powershell/ise/introducing-the-windows-powershell-ise?view=powershell-7)) as an Administrator 3) Enable PowerShell execution Set-ExecutionPolicy Unrestricted -Force 4) On the prompt, change to the directory where you extracted the files: @@ -33,7 +33,7 @@ There are different methods of running the PowerShell script. The methods are as 2) Right click the PowerShell file that you'd like to run and click on "Run With PowerShell" 3) This will allow the script to run without having to do the above steps but Powershell will ask if you're sure you want to run this script. -Remember this script NEEDS to be run as admin in order to function properly. +Remember this script **NEEDS** to be run as admin in order to function properly. ## How To Run the Windows10SysPrepDebloater.ps1 file @@ -44,7 +44,7 @@ For the WindowsSysPrepDebloater.ps1 file, there are a couple of parameters that To run this with parameters, do the following: 1) Download the .zip file on the main page of the github and extract the .zip file to your desired location -2) Once extracted, open PowerShell (or PowerShell ISE) as an Administrator +2) Once extracted, open [PowerShell](https://docs.microsoft.com/en-us/powershell/scripting/overview?view=powershell-5.1) (or [PowerShell ISE](https://docs.microsoft.com/en-us/powershell/scripting/windows-powershell/ise/introducing-the-windows-powershell-ise?view=powershell-7)) as an Administrator 3) On the prompt, change to the directory where you extracted the files: e.g. - `cd c:\temp` 4) Next, to run either script, enter in the following: @@ -53,11 +53,11 @@ To run this with parameters, do the following: ## Sysprep, Interactive, and GUI Application -There are now 3 versions of my Windows10Debloater - There is an interactive version, a GUI app version, and a pure silent version. +There are now 3 versions of **Windows10Debloater** - There is an interactive version, a GUI app version, and a pure silent version. -`Windows10SysPrepDebloater.ps1` - The silent version now utilizes the switch parameters: -Sysprep, -Debloat -Privacy. The silent version can be useful for deploying MDT Images/sysprepping or any other way you deploy Windows 10. This will work to remove the bloatware during the deployment process. +**`Windows10SysPrepDebloater.ps1`** - The silent version now utilizes the switch parameters: -Sysprep, -Debloat -Privacy. The silent version can be useful for deploying MDT Images/sysprepping or any other way you deploy Windows 10. This will work to remove the bloatware during the deployment process. -`Windows10Debloater.ps1` - This interactive version is what it implies - a Windows10Debloater script with interactive prompts. This one should not be used for deployments that require a silent script with optional parameters. This script gives you choices with prompts as it runs so that you can make the choices of what the script does. +**`Windows10Debloater.ps1`** - This interactive version is what it implies - a Windows10Debloater script with interactive prompts. This one should not be used for deployments that require a silent script with optional parameters. This script gives you choices with prompts as it runs so that you can make the choices of what the script does. **`Windows10DebloaterGUI.ps1`** There is now a GUI Application named Windows10DebloaterGUI.ps1 with buttons to perform all of the functions that the scripts do. This is better for the average user who does not want to work with code, or if you'd prefer to just see an application screen. @@ -66,13 +66,13 @@ There are now 3 versions of my Windows10Debloater - There is an interactive vers There are 3 switch parameters in the `Windows10SysPrepDebloater.ps1` script. -The first one is -SysPrep, which runs the command within a function: get-appxpackage | remove-appxpackage. This is useful since some administrators need that command to run first in order for machines to be able to properly provision the apps for removal. +The first one is **`-SysPrep`**, which runs the command within a function: get-appxpackage | remove-appxpackage. This is useful since some administrators need that command to run first in order for machines to be able to properly provision the apps for removal. -The second switch parameter is -Debloat, which does as it suggests. It runs the following functions: Start-Debloat, Remove-Keys, and Protect-Privacy. +The second switch parameter is **`-Debloat`**, which does as it suggests. It runs the following functions: Start-Debloat, Remove-Keys, and Protect-Privacy. Remove-Keys removes registry keys leftover that are associated with the bloatware apps listed above, but not removed during the Start-Debloat function. -Third, Protect-Privacy adds and/or changes registry keys to stop some telemetry functions, stops Cortana from being used as your Search Index, disables "unneccessary" scheduled tasks, and more. +Third, **`Protect-Privacy`** adds and/or changes registry keys to stop some telemetry functions, stops Cortana from being used as your Search Index, disables "unneccessary" scheduled tasks, and more. ***This script will remove the bloatware from Windows 10 when using Remove-AppXPackage/Remove-AppXProvisionedPackage, and then delete specific registry keys that are were not removed beforehand. For best results, this script should be ran before a user profile is configured, otherwise you will likely see that apps that should have been removed will remain, and if they are removed you will find broken tiles on the start menu.*** @@ -113,11 +113,11 @@ These scheduled tasks that are disabled have absolutely no impact on the functio ## Bloatware that is removed: -3DBuilder, -ActiproSoftware, -Alarms, -Appconnector, -Asphalt8, +[3DBuilder](https://www.microsoft.com/en-us/p/3d-builder/9wzdncrfj3t6), +[ActiproSoftware](https://www.microsoft.com/en-us/p/actipro-universal-windows-controls/9wzdncrdlvzp), +[Alarms](https://www.microsoft.com/en-us/p/windows-alarms-clock/9wzdncrfj3pr?activetab=pivot:overviewtab), +[Appconnector](https://www.microsoft.com/en-us/p/connector/9wzdncrdjmlj?activetab=pivot:overviewtab), +[Asphalt8](https://www.microsoft.com/en-us/p/asphalt-8-racing-game-drive-drift-at-real-speed/9wzdncrfj26j?activetab=pivot:overviewtab), Autodesk SketchBook, Bing Finance, Bing Food And Drink, From 01aa6e24601a636ffce5d7b30df3f1bd5d65b1b1 Mon Sep 17 00:00:00 2001 From: Zoran Jankov Date: Fri, 23 Oct 2020 13:50:34 +0200 Subject: [PATCH 09/32] Update README.md --- README.md | 26 +++++++++++++++----------- 1 file changed, 15 insertions(+), 11 deletions(-) diff --git a/README.md b/README.md index a399927..7a93dec 100644 --- a/README.md +++ b/README.md @@ -7,7 +7,8 @@ Script/Utility/Application to debloat Windows 10 ## Disclaimer -I do **NOT** take responsibility for what may happen to your system. This is at your own risk. + +**WARNING:** I do **NOT** take responsibility for what may happen to your system. This is at your own risk. ## How To Run the Windows10Debloater.ps1 and the Windows10DebloaterGUI.ps1 files @@ -66,18 +67,18 @@ There are now 3 versions of **Windows10Debloater** - There is an interactive ver There are 3 switch parameters in the `Windows10SysPrepDebloater.ps1` script. -The first one is **`-SysPrep`**, which runs the command within a function: get-appxpackage | remove-appxpackage. This is useful since some administrators need that command to run first in order for machines to be able to properly provision the apps for removal. +- **`-SysPrep`**, which runs the command within a function: get-appxpackage | remove-appxpackage. This is useful since some administrators need that command to run first in order for machines to be able to properly provision the apps for removal. -The second switch parameter is **`-Debloat`**, which does as it suggests. It runs the following functions: Start-Debloat, Remove-Keys, and Protect-Privacy. +- **`-Debloat`**, switch parameter which does as it suggests. It runs the following functions: Start-Debloat, Remove-Keys, and Protect-Privacy. Remove-Keys removes registry keys leftover that are associated with the bloatware apps listed above, but not removed during the Start-Debloat function. -Third, **`Protect-Privacy`** adds and/or changes registry keys to stop some telemetry functions, stops Cortana from being used as your Search Index, disables "unneccessary" scheduled tasks, and more. +- **`Protect-Privacy`** adds and/or changes registry keys to stop some telemetry functions, stops Cortana from being used as your Search Index, disables "unneccessary" scheduled tasks, and more. ***This script will remove the bloatware from Windows 10 when using Remove-AppXPackage/Remove-AppXProvisionedPackage, and then delete specific registry keys that are were not removed beforehand. For best results, this script should be ran before a user profile is configured, otherwise you will likely see that apps that should have been removed will remain, and if they are removed you will find broken tiles on the start menu.*** -### These registry keys are: +## These registry keys are: EclipseManager, ActiproSoftwareLLC, @@ -87,20 +88,22 @@ Microsoft.XboxGameCallableUI You can choose to either 'Debloat' or 'Revert'. Depending on your choice, either one will run specific code to either debloat your Windows 10 machine. -### The Debloat switch choice runs the following functions: +## The Debloat switch choice runs the following functions: Debloat, Remove-Keys, Protect-Privacy, Stop-EdgePDF (If chosen) -### The Revert switch choice runs the following functions: + +## The Revert switch choice runs the following functions: Revert-Changes, Enable-EdgePDF The Revert option reinstalls the bloatware and changes your registry keys back to default. + ## The scheduled tasks that are disabled are: XblGameSaveTaskLogon, @@ -111,6 +114,7 @@ DmClient These scheduled tasks that are disabled have absolutely no impact on the function of the OS. + ## Bloatware that is removed: [3DBuilder](https://www.microsoft.com/en-us/p/3d-builder/9wzdncrfj3t6), @@ -118,10 +122,10 @@ These scheduled tasks that are disabled have absolutely no impact on the functio [Alarms](https://www.microsoft.com/en-us/p/windows-alarms-clock/9wzdncrfj3pr?activetab=pivot:overviewtab), [Appconnector](https://www.microsoft.com/en-us/p/connector/9wzdncrdjmlj?activetab=pivot:overviewtab), [Asphalt8](https://www.microsoft.com/en-us/p/asphalt-8-racing-game-drive-drift-at-real-speed/9wzdncrfj26j?activetab=pivot:overviewtab), -Autodesk SketchBook, -Bing Finance, -Bing Food And Drink, -Bing Health And Fitness, +[Autodesk SketchBook](https://www.microsoft.com/en-us/p/autodesk-sketchbook/9nblggh4vzw5), +[MSN Money](https://www.microsoft.com/en-us/p/msn-money/9wzdncrfhv4v?activetab=pivot:overviewtab), +[Food And Drink](https://www.microsoft.com/en-us/p/food-and-drink/9nblggh0jhqg), +[Health And Fitness](https://www.microsoft.com/en-us/p/health-fitness-free/9wzdncrcwcdp), Bing News, Bing Sports, Bing Travel, From c67b7f1f42d81b82b240ff45e9c7db3166facbb8 Mon Sep 17 00:00:00 2001 From: Zoran Jankov Date: Fri, 23 Oct 2020 14:04:54 +0200 Subject: [PATCH 10/32] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 7a93dec..9e5b955 100644 --- a/README.md +++ b/README.md @@ -73,7 +73,7 @@ There are 3 switch parameters in the `Windows10SysPrepDebloater.ps1` script. Remove-Keys removes registry keys leftover that are associated with the bloatware apps listed above, but not removed during the Start-Debloat function. -- **`Protect-Privacy`** adds and/or changes registry keys to stop some telemetry functions, stops Cortana from being used as your Search Index, disables "unneccessary" scheduled tasks, and more. +- **`-Privacy`** adds and/or changes registry keys to stop some telemetry functions, stops Cortana from being used as your Search Index, disables "unneccessary" scheduled tasks, and more. ***This script will remove the bloatware from Windows 10 when using Remove-AppXPackage/Remove-AppXProvisionedPackage, and then delete specific registry keys that are were not removed beforehand. For best results, this script should be ran before a user profile is configured, otherwise you will likely see that apps that should have been removed will remain, and if they are removed you will find broken tiles on the start menu.*** From cc6b3d3f5cdf6445ef468fc1ce52928532fc87cd Mon Sep 17 00:00:00 2001 From: Zoran Jankov Date: Fri, 23 Oct 2020 14:33:01 +0200 Subject: [PATCH 11/32] Update README.md --- README.md | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/README.md b/README.md index 9e5b955..4de35cd 100644 --- a/README.md +++ b/README.md @@ -4,11 +4,12 @@ [![made-with-powershell](https://img.shields.io/badge/PowerShell-1f425f?logo=Powershell)](https://microsoft.com/PowerShell) [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT) -Script/Utility/Application to debloat Windows 10 +Script/Utility/Application to debloat Windows 10, to remove Windows pre-installed unnecessary applications, stop some telemetry functions, stop Cortana from being used as your Search Index, to disable unnecessary scheduled tasks, and more... + ## Disclaimer -**WARNING:** I do **NOT** take responsibility for what may happen to your system. This is at your own risk. +**WARNING:** I do **NOT** take responsibility for what may happen to your system! Run scripts at your own risk! ## How To Run the Windows10Debloater.ps1 and the Windows10DebloaterGUI.ps1 files @@ -40,7 +41,7 @@ Remember this script **NEEDS** to be run as admin in order to function properly. ## How To Run the Windows10SysPrepDebloater.ps1 file For the WindowsSysPrepDebloater.ps1 file, there are a couple of parameters that you can run so that you can specify which functions are used. The parameters are: -`-SysPrep, -Debloat`. +`-SysPrep`, `-Debloat` and `-Privacy`. To run this with parameters, do the following: @@ -126,12 +127,12 @@ These scheduled tasks that are disabled have absolutely no impact on the functio [MSN Money](https://www.microsoft.com/en-us/p/msn-money/9wzdncrfhv4v?activetab=pivot:overviewtab), [Food And Drink](https://www.microsoft.com/en-us/p/food-and-drink/9nblggh0jhqg), [Health And Fitness](https://www.microsoft.com/en-us/p/health-fitness-free/9wzdncrcwcdp), -Bing News, -Bing Sports, -Bing Travel, -Bing Weather, +[Microsoft News](https://www.microsoft.com/en-us/p/microsoft-news/9wzdncrfhvfw#activetab=pivot:overviewtab), +[MSN Sports](https://www.microsoft.com/en-us/p/msn-sports/9wzdncrfhvh4?activetab=pivot:overviewtab), +[MSN Travel](https://www.microsoft.com/en-us/p/msn-travel/9wzdncrfj3ft?activetab=pivot:overviewtab), +[MSN Weather](https://www.microsoft.com/en-us/p/msn-weather/9wzdncrfj3q2?activetab=pivot:overviewtab), BioEnrollment, -Camera, +[Windows Camera](https://www.microsoft.com/en-us/p/windows-camera/9wzdncrfjbbg#activetab=pivot:overviewtab), CandyCrush, CandyCrushSoda, Caesars Slots Free Casino, @@ -188,4 +189,4 @@ Zune Video. ## Credits -Thank you to a60wattfish, abulgatz, xsisbest, Damian, Vikingat-RAGE, and Reddit user /u/GavinEke for some of the suggestions and fixes that I have placed into my scripts. You all have done a fantastic job! +Thank you to [a60wattfish](https://github.com/a60wattfish), [abulgatz](abulgatz), [xsisbest](https://github.com/xsisbest), [Damian](https://github.com/Damian), [Vikingat-RAGE](https://github.com/Vikingat-RAGE), and Reddit user [/u/GavinEke](https://github.com/GavinEke) for some of the suggestions and fixes that I have placed into my scripts. You all have done a fantastic job! From 9232eb0c8e67bc13baaf076371e6c6982b42ed6b Mon Sep 17 00:00:00 2001 From: Zoran Jankov Date: Fri, 23 Oct 2020 14:34:18 +0200 Subject: [PATCH 12/32] Update README.md --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 4de35cd..2e302eb 100644 --- a/README.md +++ b/README.md @@ -57,11 +57,11 @@ To run this with parameters, do the following: There are now 3 versions of **Windows10Debloater** - There is an interactive version, a GUI app version, and a pure silent version. -**`Windows10SysPrepDebloater.ps1`** - The silent version now utilizes the switch parameters: -Sysprep, -Debloat -Privacy. The silent version can be useful for deploying MDT Images/sysprepping or any other way you deploy Windows 10. This will work to remove the bloatware during the deployment process. +- **`Windows10SysPrepDebloater.ps1`** - The silent version now utilizes the switch parameters: -Sysprep, -Debloat -Privacy. The silent version can be useful for deploying MDT Images/sysprepping or any other way you deploy Windows 10. This will work to remove the bloatware during the deployment process. -**`Windows10Debloater.ps1`** - This interactive version is what it implies - a Windows10Debloater script with interactive prompts. This one should not be used for deployments that require a silent script with optional parameters. This script gives you choices with prompts as it runs so that you can make the choices of what the script does. +- **`Windows10Debloater.ps1`** - This interactive version is what it implies - a Windows10Debloater script with interactive prompts. This one should not be used for deployments that require a silent script with optional parameters. This script gives you choices with prompts as it runs so that you can make the choices of what the script does. -**`Windows10DebloaterGUI.ps1`** There is now a GUI Application named Windows10DebloaterGUI.ps1 with buttons to perform all of the functions that the scripts do. This is better for the average user who does not want to work with code, or if you'd prefer to just see an application screen. +- **`Windows10DebloaterGUI.ps1`** There is now a GUI Application named Windows10DebloaterGUI.ps1 with buttons to perform all of the functions that the scripts do. This is better for the average user who does not want to work with code, or if you'd prefer to just see an application screen. ## Switch Parameters From 91bef466fbf27613998990d752e5190ef2c3b435 Mon Sep 17 00:00:00 2001 From: Zoran Jankov Date: Fri, 23 Oct 2020 15:06:11 +0200 Subject: [PATCH 13/32] Update README.md --- README.md | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index 2e302eb..5d15da8 100644 --- a/README.md +++ b/README.md @@ -17,7 +17,7 @@ Script/Utility/Application to debloat Windows 10, to remove Windows pre-installe There are different methods of running the PowerShell script. The methods are as follows: -### First Method: +### First Method 1) Download the .zip file on the main page of the github and extract the .zip file to your desired location 2) Once extracted, open [PowerShell](https://docs.microsoft.com/en-us/powershell/scripting/overview?view=powershell-5.1) (or [PowerShell ISE](https://docs.microsoft.com/en-us/powershell/scripting/windows-powershell/ise/introducing-the-windows-powershell-ise?view=powershell-7)) as an Administrator @@ -29,7 +29,7 @@ There are different methods of running the PowerShell script. The methods are as e.g. - `.\Windows10DebloaterGUI.ps1` -### Second Method: +### Second Method 1) Download the .zip file on the main page of the github and extract the .zip file to your desired location 2) Right click the PowerShell file that you'd like to run and click on "Run With PowerShell" @@ -79,7 +79,7 @@ Remove-Keys removes registry keys leftover that are associated with the bloatwar ***This script will remove the bloatware from Windows 10 when using Remove-AppXPackage/Remove-AppXProvisionedPackage, and then delete specific registry keys that are were not removed beforehand. For best results, this script should be ran before a user profile is configured, otherwise you will likely see that apps that should have been removed will remain, and if they are removed you will find broken tiles on the start menu.*** -## These registry keys are: +## These registry keys are EclipseManager, ActiproSoftwareLLC, @@ -89,7 +89,7 @@ Microsoft.XboxGameCallableUI You can choose to either 'Debloat' or 'Revert'. Depending on your choice, either one will run specific code to either debloat your Windows 10 machine. -## The Debloat switch choice runs the following functions: +## The Debloat switch choice runs the following functions Debloat, Remove-Keys, @@ -97,7 +97,7 @@ Protect-Privacy, Stop-EdgePDF (If chosen) -## The Revert switch choice runs the following functions: +## The Revert switch choice runs the following functions Revert-Changes, Enable-EdgePDF @@ -105,7 +105,7 @@ Enable-EdgePDF The Revert option reinstalls the bloatware and changes your registry keys back to default. -## The scheduled tasks that are disabled are: +## The scheduled tasks that are disabled are XblGameSaveTaskLogon, XblGameSaveTask, @@ -116,7 +116,7 @@ DmClient These scheduled tasks that are disabled have absolutely no impact on the function of the OS. -## Bloatware that is removed: +## Bloatware that is removed [3DBuilder](https://www.microsoft.com/en-us/p/3d-builder/9wzdncrfj3t6), [ActiproSoftware](https://www.microsoft.com/en-us/p/actipro-universal-windows-controls/9wzdncrdlvzp), From e5e89aeb7db3eb31d6a2f07612c52e775b336805 Mon Sep 17 00:00:00 2001 From: Zoran Jankov Date: Fri, 23 Oct 2020 15:09:45 +0200 Subject: [PATCH 14/32] Update README.md --- README.md | 13 ------------- 1 file changed, 13 deletions(-) diff --git a/README.md b/README.md index 5d15da8..da05649 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,3 @@ - # Windows10Debloater [![made-with-powershell](https://img.shields.io/badge/PowerShell-1f425f?logo=Powershell)](https://microsoft.com/PowerShell) @@ -6,17 +5,14 @@ Script/Utility/Application to debloat Windows 10, to remove Windows pre-installed unnecessary applications, stop some telemetry functions, stop Cortana from being used as your Search Index, to disable unnecessary scheduled tasks, and more... - ## Disclaimer **WARNING:** I do **NOT** take responsibility for what may happen to your system! Run scripts at your own risk! - ## How To Run the Windows10Debloater.ps1 and the Windows10DebloaterGUI.ps1 files There are different methods of running the PowerShell script. The methods are as follows: - ### First Method 1) Download the .zip file on the main page of the github and extract the .zip file to your desired location @@ -28,7 +24,6 @@ There are different methods of running the PowerShell script. The methods are as 5) Next, to run either script, enter in the following: e.g. - `.\Windows10DebloaterGUI.ps1` - ### Second Method 1) Download the .zip file on the main page of the github and extract the .zip file to your desired location @@ -37,7 +32,6 @@ There are different methods of running the PowerShell script. The methods are as Remember this script **NEEDS** to be run as admin in order to function properly. - ## How To Run the Windows10SysPrepDebloater.ps1 file For the WindowsSysPrepDebloater.ps1 file, there are a couple of parameters that you can run so that you can specify which functions are used. The parameters are: @@ -52,7 +46,6 @@ To run this with parameters, do the following: 4) Next, to run either script, enter in the following: e.g. - `.\Windows10SysPrepDebloater.ps1 -Sysprep, -Debloat -Privacy` - ## Sysprep, Interactive, and GUI Application There are now 3 versions of **Windows10Debloater** - There is an interactive version, a GUI app version, and a pure silent version. @@ -63,7 +56,6 @@ There are now 3 versions of **Windows10Debloater** - There is an interactive ver - **`Windows10DebloaterGUI.ps1`** There is now a GUI Application named Windows10DebloaterGUI.ps1 with buttons to perform all of the functions that the scripts do. This is better for the average user who does not want to work with code, or if you'd prefer to just see an application screen. - ## Switch Parameters There are 3 switch parameters in the `Windows10SysPrepDebloater.ps1` script. @@ -78,7 +70,6 @@ Remove-Keys removes registry keys leftover that are associated with the bloatwar ***This script will remove the bloatware from Windows 10 when using Remove-AppXPackage/Remove-AppXProvisionedPackage, and then delete specific registry keys that are were not removed beforehand. For best results, this script should be ran before a user profile is configured, otherwise you will likely see that apps that should have been removed will remain, and if they are removed you will find broken tiles on the start menu.*** - ## These registry keys are EclipseManager, @@ -88,7 +79,6 @@ Microsoft.XboxGameCallableUI You can choose to either 'Debloat' or 'Revert'. Depending on your choice, either one will run specific code to either debloat your Windows 10 machine. - ## The Debloat switch choice runs the following functions Debloat, @@ -96,7 +86,6 @@ Remove-Keys, Protect-Privacy, Stop-EdgePDF (If chosen) - ## The Revert switch choice runs the following functions Revert-Changes, @@ -104,7 +93,6 @@ Enable-EdgePDF The Revert option reinstalls the bloatware and changes your registry keys back to default. - ## The scheduled tasks that are disabled are XblGameSaveTaskLogon, @@ -115,7 +103,6 @@ DmClient These scheduled tasks that are disabled have absolutely no impact on the function of the OS. - ## Bloatware that is removed [3DBuilder](https://www.microsoft.com/en-us/p/3d-builder/9wzdncrfj3t6), From 8d02265de91c72dac7603e0cf1f58748ca7bbffb Mon Sep 17 00:00:00 2001 From: Zoran Jankov Date: Fri, 23 Oct 2020 15:12:34 +0200 Subject: [PATCH 15/32] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index da05649..b89021d 100644 --- a/README.md +++ b/README.md @@ -5,7 +5,7 @@ Script/Utility/Application to debloat Windows 10, to remove Windows pre-installed unnecessary applications, stop some telemetry functions, stop Cortana from being used as your Search Index, to disable unnecessary scheduled tasks, and more... -## Disclaimer +## Disclaimer **WARNING:** I do **NOT** take responsibility for what may happen to your system! Run scripts at your own risk! From 3ae5d9ba48d4b3f16de12cc53e87c005111713b1 Mon Sep 17 00:00:00 2001 From: Zoran Jankov Date: Fri, 23 Oct 2020 15:13:48 +0200 Subject: [PATCH 16/32] Update README.md --- README.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index b89021d..9872be2 100644 --- a/README.md +++ b/README.md @@ -50,23 +50,23 @@ To run this with parameters, do the following: There are now 3 versions of **Windows10Debloater** - There is an interactive version, a GUI app version, and a pure silent version. -- **`Windows10SysPrepDebloater.ps1`** - The silent version now utilizes the switch parameters: -Sysprep, -Debloat -Privacy. The silent version can be useful for deploying MDT Images/sysprepping or any other way you deploy Windows 10. This will work to remove the bloatware during the deployment process. +- **`Windows10SysPrepDebloater.ps1`** - The silent version now utilizes the switch parameters: -Sysprep, -Debloat -Privacy. The silent version can be useful for deploying MDT Images/sysprepping or any other way you deploy Windows 10. This will work to remove the bloatware during the deployment process. -- **`Windows10Debloater.ps1`** - This interactive version is what it implies - a Windows10Debloater script with interactive prompts. This one should not be used for deployments that require a silent script with optional parameters. This script gives you choices with prompts as it runs so that you can make the choices of what the script does. +- **`Windows10Debloater.ps1`** - This interactive version is what it implies - a Windows10Debloater script with interactive prompts. This one should not be used for deployments that require a silent script with optional parameters. This script gives you choices with prompts as it runs so that you can make the choices of what the script does. -- **`Windows10DebloaterGUI.ps1`** There is now a GUI Application named Windows10DebloaterGUI.ps1 with buttons to perform all of the functions that the scripts do. This is better for the average user who does not want to work with code, or if you'd prefer to just see an application screen. +- **`Windows10DebloaterGUI.ps1`** There is now a GUI Application named Windows10DebloaterGUI.ps1 with buttons to perform all of the functions that the scripts do. This is better for the average user who does not want to work with code, or if you'd prefer to just see an application screen. ## Switch Parameters There are 3 switch parameters in the `Windows10SysPrepDebloater.ps1` script. -- **`-SysPrep`**, which runs the command within a function: get-appxpackage | remove-appxpackage. This is useful since some administrators need that command to run first in order for machines to be able to properly provision the apps for removal. +- **`-SysPrep`**, which runs the command within a function: get-appxpackage | remove-appxpackage. This is useful since some administrators need that command to run first in order for machines to be able to properly provision the apps for removal. -- **`-Debloat`**, switch parameter which does as it suggests. It runs the following functions: Start-Debloat, Remove-Keys, and Protect-Privacy. +- **`-Debloat`**, switch parameter which does as it suggests. It runs the following functions: Start-Debloat, Remove-Keys, and Protect-Privacy. Remove-Keys removes registry keys leftover that are associated with the bloatware apps listed above, but not removed during the Start-Debloat function. -- **`-Privacy`** adds and/or changes registry keys to stop some telemetry functions, stops Cortana from being used as your Search Index, disables "unneccessary" scheduled tasks, and more. +- **`-Privacy`** adds and/or changes registry keys to stop some telemetry functions, stops Cortana from being used as your Search Index, disables "unneccessary" scheduled tasks, and more. ***This script will remove the bloatware from Windows 10 when using Remove-AppXPackage/Remove-AppXProvisionedPackage, and then delete specific registry keys that are were not removed beforehand. For best results, this script should be ran before a user profile is configured, otherwise you will likely see that apps that should have been removed will remain, and if they are removed you will find broken tiles on the start menu.*** From d9e1f41b0a6b65ba60da73843fc3ac6cee4e2740 Mon Sep 17 00:00:00 2001 From: Zoran Jankov Date: Fri, 23 Oct 2020 15:15:49 +0200 Subject: [PATCH 17/32] Update README.md --- README.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index 9872be2..3fb270f 100644 --- a/README.md +++ b/README.md @@ -50,23 +50,23 @@ To run this with parameters, do the following: There are now 3 versions of **Windows10Debloater** - There is an interactive version, a GUI app version, and a pure silent version. -- **`Windows10SysPrepDebloater.ps1`** - The silent version now utilizes the switch parameters: -Sysprep, -Debloat -Privacy. The silent version can be useful for deploying MDT Images/sysprepping or any other way you deploy Windows 10. This will work to remove the bloatware during the deployment process. +- **`Windows10SysPrepDebloater.ps1`** - The silent version now utilizes the switch parameters: -Sysprep, -Debloat -Privacy. The silent version can be useful for deploying MDT Images/sysprepping or any other way you deploy Windows 10. This will work to remove the bloatware during the deployment process. -- **`Windows10Debloater.ps1`** - This interactive version is what it implies - a Windows10Debloater script with interactive prompts. This one should not be used for deployments that require a silent script with optional parameters. This script gives you choices with prompts as it runs so that you can make the choices of what the script does. +- **`Windows10Debloater.ps1`** - This interactive version is what it implies - a Windows10Debloater script with interactive prompts. This one should not be used for deployments that require a silent script with optional parameters. This script gives you choices with prompts as it runs so that you can make the choices of what the script does. -- **`Windows10DebloaterGUI.ps1`** There is now a GUI Application named Windows10DebloaterGUI.ps1 with buttons to perform all of the functions that the scripts do. This is better for the average user who does not want to work with code, or if you'd prefer to just see an application screen. +- **`Windows10DebloaterGUI.ps1`** There is now a GUI Application named Windows10DebloaterGUI.ps1 with buttons to perform all of the functions that the scripts do. This is better for the average user who does not want to work with code, or if you'd prefer to just see an application screen. ## Switch Parameters There are 3 switch parameters in the `Windows10SysPrepDebloater.ps1` script. -- **`-SysPrep`**, which runs the command within a function: get-appxpackage | remove-appxpackage. This is useful since some administrators need that command to run first in order for machines to be able to properly provision the apps for removal. +- **`-SysPrep`**, which runs the command within a function: get-appxpackage | remove-appxpackage. This is useful since some administrators need that command to run first in order for machines to be able to properly provision the apps for removal. -- **`-Debloat`**, switch parameter which does as it suggests. It runs the following functions: Start-Debloat, Remove-Keys, and Protect-Privacy. +- **`-Debloat`**, switch parameter which does as it suggests. It runs the following functions: Start-Debloat, Remove-Keys, and Protect-Privacy. Remove-Keys removes registry keys leftover that are associated with the bloatware apps listed above, but not removed during the Start-Debloat function. -- **`-Privacy`** adds and/or changes registry keys to stop some telemetry functions, stops Cortana from being used as your Search Index, disables "unneccessary" scheduled tasks, and more. +- **`-Privacy`** adds and/or changes registry keys to stop some telemetry functions, stops Cortana from being used as your Search Index, disables "unneccessary" scheduled tasks, and more. ***This script will remove the bloatware from Windows 10 when using Remove-AppXPackage/Remove-AppXProvisionedPackage, and then delete specific registry keys that are were not removed beforehand. For best results, this script should be ran before a user profile is configured, otherwise you will likely see that apps that should have been removed will remain, and if they are removed you will find broken tiles on the start menu.*** From 27dbdb596f51e89ce86d21a8c2bcdec91cfdde85 Mon Sep 17 00:00:00 2001 From: Zoran Jankov Date: Fri, 23 Oct 2020 15:27:20 +0200 Subject: [PATCH 18/32] Update README.md --- README.md | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 3fb270f..5eac9af 100644 --- a/README.md +++ b/README.md @@ -50,11 +50,11 @@ To run this with parameters, do the following: There are now 3 versions of **Windows10Debloater** - There is an interactive version, a GUI app version, and a pure silent version. -- **`Windows10SysPrepDebloater.ps1`** - The silent version now utilizes the switch parameters: -Sysprep, -Debloat -Privacy. The silent version can be useful for deploying MDT Images/sysprepping or any other way you deploy Windows 10. This will work to remove the bloatware during the deployment process. +- **`Windows10SysPrepDebloater.ps1`** -> The silent version now utilizes the switch parameters: -Sysprep, -Debloat -Privacy. The silent version can be useful for deploying MDT Images/sysprepping or any other way you deploy Windows 10. This will work to remove the bloatware during the deployment process. -- **`Windows10Debloater.ps1`** - This interactive version is what it implies - a Windows10Debloater script with interactive prompts. This one should not be used for deployments that require a silent script with optional parameters. This script gives you choices with prompts as it runs so that you can make the choices of what the script does. +- **`Windows10Debloater.ps1`** -> This interactive version is what it implies - a Windows10Debloater script with interactive prompts. This one should not be used for deployments that require a silent script with optional parameters. This script gives you choices with prompts as it runs so that you can make the choices of what the script does. -- **`Windows10DebloaterGUI.ps1`** There is now a GUI Application named Windows10DebloaterGUI.ps1 with buttons to perform all of the functions that the scripts do. This is better for the average user who does not want to work with code, or if you'd prefer to just see an application screen. +- **`Windows10DebloaterGUI.ps1`** -> There is now a GUI Application named Windows10DebloaterGUI.ps1 with buttons to perform all of the functions that the scripts do. This is better for the average user who does not want to work with code, or if you'd prefer to just see an application screen. ## Switch Parameters @@ -63,10 +63,9 @@ There are 3 switch parameters in the `Windows10SysPrepDebloater.ps1` script. - **`-SysPrep`**, which runs the command within a function: get-appxpackage | remove-appxpackage. This is useful since some administrators need that command to run first in order for machines to be able to properly provision the apps for removal. - **`-Debloat`**, switch parameter which does as it suggests. It runs the following functions: Start-Debloat, Remove-Keys, and Protect-Privacy. - Remove-Keys removes registry keys leftover that are associated with the bloatware apps listed above, but not removed during the Start-Debloat function. -- **`-Privacy`** adds and/or changes registry keys to stop some telemetry functions, stops Cortana from being used as your Search Index, disables "unneccessary" scheduled tasks, and more. +- **`-Privacy`**, adds and/or changes registry keys to stop some telemetry functions, stops Cortana from being used as your Search Index, disables "unneccessary" scheduled tasks, and more. ***This script will remove the bloatware from Windows 10 when using Remove-AppXPackage/Remove-AppXProvisionedPackage, and then delete specific registry keys that are were not removed beforehand. For best results, this script should be ran before a user profile is configured, otherwise you will likely see that apps that should have been removed will remain, and if they are removed you will find broken tiles on the start menu.*** From 1c34c4acf1dd999d859fcd11453aa1eeeef06a1a Mon Sep 17 00:00:00 2001 From: Yethal Date: Sun, 8 Nov 2020 13:56:14 +0100 Subject: [PATCH 19/32] Shortened quick download link Shortened the link so it's easier to type (if you cannot copy&paste it) and memorize --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index d684ad5..f32f373 100644 --- a/README.md +++ b/README.md @@ -171,7 +171,7 @@ Zune Video. # Quick download link -`iex ((New-Object System.Net.WebClient).DownloadString('https://git.io/debloat'))` +`iwr -useb https://git.io/debloat|iex` # Credits From c9d27e3ae2bbb0c5a8a7ba958d9f74cb706345a9 Mon Sep 17 00:00:00 2001 From: David Date: Mon, 25 Jan 2021 11:51:49 -0600 Subject: [PATCH 20/32] Fix script not removing all the tiles --- Individual Scripts/Unpin Start | 67 +++++++++++++++++++++++++++++----- 1 file changed, 58 insertions(+), 9 deletions(-) diff --git a/Individual Scripts/Unpin Start b/Individual Scripts/Unpin Start index 0ea0b42..b70c769 100644 --- a/Individual Scripts/Unpin Start +++ b/Individual Scripts/Unpin Start @@ -1,9 +1,58 @@ -#https://superuser.com/questions/1068382/how-to-remove-all-the-tiles-in-the-windows-10-start-menu -#Unpins all tiles from the Start Menu - Write-Output "Unpinning all tiles from the start menu" - (New-Object -Com Shell.Application). - NameSpace('shell:::{4234d49b-0245-4df3-b780-3893943456e1}'). - Items() | - %{ $_.Verbs() } | - ?{$_.Name -match 'Un.*pin from Start'} | - %{$_.DoIt()} \ No newline at end of file +# https://superuser.com/a/1442733 +#Requires -RunAsAdministrator + +$START_MENU_LAYOUT = @" + + + + + + + + +"@ + +$layoutFile="C:\Windows\StartMenuLayout.xml" + +#Delete layout file if it already exists +If(Test-Path $layoutFile) +{ + Remove-Item $layoutFile +} + +#Creates the blank layout file +$START_MENU_LAYOUT | Out-File $layoutFile -Encoding ASCII + +$regAliases = @("HKLM", "HKCU") + +#Assign the start layout and force it to apply with "LockedStartLayout" at both the machine and user level +foreach ($regAlias in $regAliases){ + $basePath = $regAlias + ":\SOFTWARE\Policies\Microsoft\Windows" + $keyPath = $basePath + "\Explorer" + IF(!(Test-Path -Path $keyPath)) { + New-Item -Path $basePath -Name "Explorer" + } + Set-ItemProperty -Path $keyPath -Name "LockedStartLayout" -Value 1 + Set-ItemProperty -Path $keyPath -Name "StartLayoutFile" -Value $layoutFile +} + +#Restart Explorer, open the start menu (necessary to load the new layout), and give it a few seconds to process +Stop-Process -name explorer +Start-Sleep -s 5 +$wshell = New-Object -ComObject wscript.shell; $wshell.SendKeys('^{ESCAPE}') +Start-Sleep -s 5 + +#Enable the ability to pin items again by disabling "LockedStartLayout" +foreach ($regAlias in $regAliases){ + $basePath = $regAlias + ":\SOFTWARE\Policies\Microsoft\Windows" + $keyPath = $basePath + "\Explorer" + Set-ItemProperty -Path $keyPath -Name "LockedStartLayout" -Value 0 +} + +#Restart Explorer and delete the layout file +Stop-Process -name explorer + +# Uncomment the next line to make clean start menu default for all new users +#Import-StartLayout -LayoutPath $layoutFile -MountPath $env:SystemDrive\ + +Remove-Item $layoutFile From 77c218929e1b05c4adb56d778445c3eb774389e2 Mon Sep 17 00:00:00 2001 From: David Wright Date: Fri, 5 Feb 2021 11:11:31 -0600 Subject: [PATCH 21/32] Update UnpinStart function for GUI/CLI scripts --- Windows10Debloater.ps1 | 67 +++++++++++++++++++++++++----- Windows10DebloaterGUI.ps1 | 85 ++++++++++++++++++++++++--------------- 2 files changed, 111 insertions(+), 41 deletions(-) diff --git a/Windows10Debloater.ps1 b/Windows10Debloater.ps1 index 01a085c..23651c5 100644 --- a/Windows10Debloater.ps1 +++ b/Windows10Debloater.ps1 @@ -667,15 +667,64 @@ Function UninstallOneDrive { } Function UnpinStart { - #https://superuser.com/questions/1068382/how-to-remove-all-the-tiles-in-the-windows-10-start-menu - #Unpins all tiles from the Start Menu - Write-Host "Unpinning all tiles from the start menu" - (New-Object -Com Shell.Application). - NameSpace('shell:::{4234d49b-0245-4df3-b780-3893943456e1}'). - Items() | - % { $_.Verbs() } | - ? {$_.Name -match 'Un.*pin from Start'} | - % {$_.DoIt()} + # https://superuser.com/a/1442733 + #Requires -RunAsAdministrator + +$START_MENU_LAYOUT = @" + + + + + + + + +"@ + + $layoutFile="C:\Windows\StartMenuLayout.xml" + + #Delete layout file if it already exists + If(Test-Path $layoutFile) + { + Remove-Item $layoutFile + } + + #Creates the blank layout file + $START_MENU_LAYOUT | Out-File $layoutFile -Encoding ASCII + + $regAliases = @("HKLM", "HKCU") + + #Assign the start layout and force it to apply with "LockedStartLayout" at both the machine and user level + foreach ($regAlias in $regAliases){ + $basePath = $regAlias + ":\SOFTWARE\Policies\Microsoft\Windows" + $keyPath = $basePath + "\Explorer" + IF(!(Test-Path -Path $keyPath)) { + New-Item -Path $basePath -Name "Explorer" + } + Set-ItemProperty -Path $keyPath -Name "LockedStartLayout" -Value 1 + Set-ItemProperty -Path $keyPath -Name "StartLayoutFile" -Value $layoutFile + } + + #Restart Explorer, open the start menu (necessary to load the new layout), and give it a few seconds to process + Stop-Process -name explorer + Start-Sleep -s 5 + $wshell = New-Object -ComObject wscript.shell; $wshell.SendKeys('^{ESCAPE}') + Start-Sleep -s 5 + + #Enable the ability to pin items again by disabling "LockedStartLayout" + foreach ($regAlias in $regAliases){ + $basePath = $regAlias + ":\SOFTWARE\Policies\Microsoft\Windows" + $keyPath = $basePath + "\Explorer" + Set-ItemProperty -Path $keyPath -Name "LockedStartLayout" -Value 0 + } + + #Restart Explorer and delete the layout file + Stop-Process -name explorer + + # Uncomment the next line to make clean start menu default for all new users + #Import-StartLayout -LayoutPath $layoutFile -MountPath $env:SystemDrive\ + + Remove-Item $layoutFile } Function Remove3dObjects { diff --git a/Windows10DebloaterGUI.ps1 b/Windows10DebloaterGUI.ps1 index 587ff12..6ef7314 100644 --- a/Windows10DebloaterGUI.ps1 +++ b/Windows10DebloaterGUI.ps1 @@ -723,43 +723,64 @@ $RemoveAllBloatware.Add_Click( { } Function UnpinStart { - #Credit to Vikingat-Rage - #https://superuser.com/questions/1068382/how-to-remove-all-the-tiles-in-the-windows-10-start-menu - #Unpins all tiles from the Start Menu - Write-Host "Unpinning all tiles from the start menu" - (New-Object -Com Shell.Application). - NameSpace('shell:::{4234d49b-0245-4df3-b780-3893943456e1}'). - Items() | - % { $_.Verbs() } | - ? { $_.Name -match 'Un.*pin from Start' } | - % { $_.DoIt() } - } + # https://superuser.com/a/1442733 + # Requires -RunAsAdministrator - Function Remove3dObjects { - #Removes 3D Objects from the 'My Computer' submenu in explorer - Write-Output "Removing 3D Objects from explorer 'My Computer' submenu" - $Objects32 = "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\NameSpace\{0DB7E03F-FC29-4DC6-9020-FF41B59E513A}" - $Objects64 = "HKLM:\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\NameSpace\{0DB7E03F-FC29-4DC6-9020-FF41B59E513A}" - If (Test-Path $Objects32) { - Remove-Item $Objects32 -Recurse - } - If (Test-Path $Objects64) { - Remove-Item $Objects64 -Recurse - } - } +$START_MENU_LAYOUT = @" + + + + + + + + +"@ - - Function CheckDMWService { + $layoutFile="C:\Windows\StartMenuLayout.xml" - Param([switch]$Debloat) - - If (Get-Service dmwappushservice | Where-Object { $_.StartType -eq "Disabled" }) { - Set-Service dmwappushservice -StartupType Automatic + #Delete layout file if it already exists + If(Test-Path $layoutFile) + { + Remove-Item $layoutFile } - If (Get-Service dmwappushservice | Where-Object { $_.Status -eq "Stopped" }) { - Start-Service dmwappushservice - } + #Creates the blank layout file + $START_MENU_LAYOUT | Out-File $layoutFile -Encoding ASCII + + $regAliases = @("HKLM", "HKCU") + + #Assign the start layout and force it to apply with "LockedStartLayout" at both the machine and user level + foreach ($regAlias in $regAliases){ + $basePath = $regAlias + ":\SOFTWARE\Policies\Microsoft\Windows" + $keyPath = $basePath + "\Explorer" + IF(!(Test-Path -Path $keyPath)) { + New-Item -Path $basePath -Name "Explorer" + } + Set-ItemProperty -Path $keyPath -Name "LockedStartLayout" -Value 1 + Set-ItemProperty -Path $keyPath -Name "StartLayoutFile" -Value $layoutFile + } + + #Restart Explorer, open the start menu (necessary to load the new layout), and give it a few seconds to process + Stop-Process -name explorer + Start-Sleep -s 5 + $wshell = New-Object -ComObject wscript.shell; $wshell.SendKeys('^{ESCAPE}') + Start-Sleep -s 5 + + #Enable the ability to pin items again by disabling "LockedStartLayout" + foreach ($regAlias in $regAliases){ + $basePath = $regAlias + ":\SOFTWARE\Policies\Microsoft\Windows" + $keyPath = $basePath + "\Explorer" + Set-ItemProperty -Path $keyPath -Name "LockedStartLayout" -Value 0 + } + + #Restart Explorer and delete the layout file + Stop-Process -name explorer + + # Uncomment the next line to make clean start menu default for all new users + #Import-StartLayout -LayoutPath $layoutFile -MountPath $env:SystemDrive\ + + Remove-Item $layoutFile } Function CheckInstallService { From e565be8b364a9b29cdc6e794395b8b4b74badae1 Mon Sep 17 00:00:00 2001 From: Richard Newton Date: Sat, 13 Mar 2021 00:04:13 -0500 Subject: [PATCH 22/32] Added buymeacoffee link --- README.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/README.md b/README.md index 8f165d8..73b0bdd 100644 --- a/README.md +++ b/README.md @@ -176,3 +176,7 @@ Zune Video. ## Credits Thank you to [a60wattfish](https://github.com/a60wattfish), [abulgatz](abulgatz), [xsisbest](https://github.com/xsisbest), [Damian](https://github.com/Damian), [Vikingat-RAGE](https://github.com/Vikingat-RAGE), and Reddit user [/u/GavinEke](https://github.com/GavinEke) for some of the suggestions and fixes that I have placed into my scripts. You all have done a fantastic job! + + +## Donate a cup of coffee +Buy Me A Coffee From 1b5880b326542c0d16a3f1986d149ae92e67afec Mon Sep 17 00:00:00 2001 From: Richard Newton Date: Sat, 13 Mar 2021 00:06:53 -0500 Subject: [PATCH 23/32] Updated Credits --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 73b0bdd..c4ef6f8 100644 --- a/README.md +++ b/README.md @@ -175,7 +175,7 @@ Zune Video. ## Credits -Thank you to [a60wattfish](https://github.com/a60wattfish), [abulgatz](abulgatz), [xsisbest](https://github.com/xsisbest), [Damian](https://github.com/Damian), [Vikingat-RAGE](https://github.com/Vikingat-RAGE), and Reddit user [/u/GavinEke](https://github.com/GavinEke) for some of the suggestions and fixes that I have placed into my scripts. You all have done a fantastic job! +Thank you to [a60wattfish](https://github.com/a60wattfish), [abulgatz](abulgatz), [xsisbest](https://github.com/xsisbest), [Damian](https://github.com/Damian), [Vikingat-RAGE](https://github.com/Vikingat-RAGE), Reddit user [/u/GavinEke](https://github.com/GavinEke), and all of the contributors (https://github.com/Sycnex/Windows10Debloater/graphs/contributors) for some of the suggestions, code, changes, and fixes that you have all graciously worked hard on. You all have done a fantastic job! ## Donate a cup of coffee From 4546c81c648c596e577e8f8512ad19826300942c Mon Sep 17 00:00:00 2001 From: Richard Newton Date: Sat, 13 Mar 2021 00:07:31 -0500 Subject: [PATCH 24/32] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index c4ef6f8..0c49436 100644 --- a/README.md +++ b/README.md @@ -175,7 +175,7 @@ Zune Video. ## Credits -Thank you to [a60wattfish](https://github.com/a60wattfish), [abulgatz](abulgatz), [xsisbest](https://github.com/xsisbest), [Damian](https://github.com/Damian), [Vikingat-RAGE](https://github.com/Vikingat-RAGE), Reddit user [/u/GavinEke](https://github.com/GavinEke), and all of the contributors (https://github.com/Sycnex/Windows10Debloater/graphs/contributors) for some of the suggestions, code, changes, and fixes that you have all graciously worked hard on. You all have done a fantastic job! +Thank you to [a60wattfish](https://github.com/a60wattfish), [abulgatz](abulgatz), [xsisbest](https://github.com/xsisbest), [Damian](https://github.com/Damian), [Vikingat-RAGE](https://github.com/Vikingat-RAGE), Reddit user [/u/GavinEke](https://github.com/GavinEke), and all of the contributors (https://github.com/Sycnex/Windows10Debloater/graphs/contributors) for the suggestions, code, changes, and fixes that you have all graciously worked hard on and shared! You all have done a fantastic job! ## Donate a cup of coffee From c12528a08908df0235e2f7759a785ceb6935f143 Mon Sep 17 00:00:00 2001 From: Richard Newton Date: Sat, 13 Mar 2021 00:20:33 -0500 Subject: [PATCH 25/32] Rename Whitelist/Blacklist to Allowlist/Blocklist This resolves issue #348 --- Windows10DebloaterGUI.ps1 | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/Windows10DebloaterGUI.ps1 b/Windows10DebloaterGUI.ps1 index 9f7e677..ab3af79 100644 --- a/Windows10DebloaterGUI.ps1 +++ b/Windows10DebloaterGUI.ps1 @@ -269,7 +269,7 @@ $Debloat.ForeColor = [System.Drawing.ColorTranslator]::FromHtml("# $CustomizeBlacklist = New-Object system.Windows.Forms.Button $CustomizeBlacklist.FlatStyle = 'Flat' -$CustomizeBlacklist.text = "CUSTOMISE BLACKLIST" +$CustomizeBlacklist.text = "CUSTOMISE BLOCKLIST" $CustomizeBlacklist.width = 460 $CustomizeBlacklist.height = 30 $CustomizeBlacklist.Anchor = 'top,right,left' @@ -289,7 +289,7 @@ $RemoveAllBloatware.ForeColor = [System.Drawing.ColorTranslator]::FromHtml("# $RemoveBlacklistedBloatware = New-Object system.Windows.Forms.Button $RemoveBlacklistedBloatware.FlatStyle = 'Flat' -$RemoveBlacklistedBloatware.text = "REMOVE BLOATWARE WITH CUSTOM BLACKLIST" +$RemoveBlacklistedBloatware.text = "REMOVE BLOATWARE WITH CUSTOM BLOCKLIST" $RemoveBlacklistedBloatware.width = 460 $RemoveBlacklistedBloatware.height = 30 $RemoveBlacklistedBloatware.Anchor = 'top,right,left' @@ -497,7 +497,7 @@ $CustomizeBlacklist.Add_Click( { $CustomizeForm.MinimizeBox = $false $CustomizeForm.MaximizeBox = $false $CustomizeForm.ShowIcon = $false - $CustomizeForm.Text = "Customize Whitelist and Blacklist" + $CustomizeForm.Text = "Customize Allowlist and Blocklist" $CustomizeForm.TopMost = $false $CustomizeForm.AutoScroll = $false $CustomizeForm.BackColor = [System.Drawing.ColorTranslator]::FromHtml("#252525") @@ -513,7 +513,7 @@ $CustomizeBlacklist.Add_Click( { $SaveList = New-Object System.Windows.Forms.Button $SaveList.FlatStyle = 'Flat' - $SaveList.Text = "Save custom Whitelist and Blacklist to custom-lists.ps1" + $SaveList.Text = "Save custom Allowlist and Blocklist to custom-lists.ps1" $SaveList.width = 480 $SaveList.height = 30 $SaveList.Location = New-Object System.Drawing.Point(10, 530) @@ -670,7 +670,7 @@ $RemoveBlacklistedBloatware.Add_Click( { Write-Host "...and the final cleanup..." Get-AppxPackage -AllUsers | Where-Object Name -cmatch $global:BloatwareRegex | Remove-AppxPackage } - Write-Host "`n`n`n`n`n`n`n`n`n`n`n`n`n`n`n`n`nRemoving blacklisted Bloatware.`n" + Write-Host "`n`n`n`n`n`n`n`n`n`n`n`n`n`n`n`n`nRemoving blocklisted Bloatware.`n" DebloatBlacklist Write-Host "Bloatware removed!" }) @@ -942,7 +942,7 @@ $START_MENU_LAYOUT = @" DebloatAll Write-Host "Removing leftover bloatware registry keys." Remove-Keys - Write-Host "Checking to see if any Whitelisted Apps were removed, and if so re-adding them." + Write-Host "Checking to see if any Allowlisted Apps were removed, and if so re-adding them." FixWhitelistedApps Write-Host "Stopping telemetry, disabling unneccessary scheduled tasks, and preventing bloatware from returning." Protect-Privacy From 43dbee47d702c316d66fd1fece6a8e1a4db735d2 Mon Sep 17 00:00:00 2001 From: Richard Newton Date: Sat, 13 Mar 2021 00:26:00 -0500 Subject: [PATCH 26/32] Update README.md --- README.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/README.md b/README.md index 0c49436..82fd8a9 100644 --- a/README.md +++ b/README.md @@ -173,6 +173,9 @@ Zune Video. `iwr -useb https://git.io/debloat|iex` +## Allowlist and Blocklist +There may be some confusion, but when using the Allowlist/Blocklist, the checkmark means it is on the blocklist, and that it will be removed. + ## Credits Thank you to [a60wattfish](https://github.com/a60wattfish), [abulgatz](abulgatz), [xsisbest](https://github.com/xsisbest), [Damian](https://github.com/Damian), [Vikingat-RAGE](https://github.com/Vikingat-RAGE), Reddit user [/u/GavinEke](https://github.com/GavinEke), and all of the contributors (https://github.com/Sycnex/Windows10Debloater/graphs/contributors) for the suggestions, code, changes, and fixes that you have all graciously worked hard on and shared! You all have done a fantastic job! From 6e8c7362c7500a433dabe02fa5ffc38474b5e0d7 Mon Sep 17 00:00:00 2001 From: Richard Newton Date: Sat, 13 Mar 2021 00:54:29 -0500 Subject: [PATCH 27/32] Script will now create a restore point The ability for the script to create a system restore point has been added before the GUI itself is shown. It is automatically created at this time as well. --- Windows10DebloaterGUI.ps1 | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/Windows10DebloaterGUI.ps1 b/Windows10DebloaterGUI.ps1 index ab3af79..85a0962 100644 --- a/Windows10DebloaterGUI.ps1 +++ b/Windows10DebloaterGUI.ps1 @@ -35,6 +35,7 @@ If (!([Security.Principal.WindowsPrincipal][Security.Principal.WindowsIdentity]: } } + #Unnecessary Windows 10 AppX apps that will be removed by the blacklist. $global:Bloatware = @( "Microsoft.PPIProjection" @@ -488,6 +489,10 @@ Else { Start-Transcript -OutputDirectory "${DebloatFolder}" +Write-Output "Creating System Restore Point if one does not already exist. If one does, then you will receive a warning. Please wait..." +Checkpoint-Computer -Description "Before using W10DebloaterGUI.ps1" + + #region gui events { $CustomizeBlacklist.Add_Click( { $CustomizeForm = New-Object System.Windows.Forms.Form From 79ff7c98c3b4b76bf3f7bf9b910ac64079220a0e Mon Sep 17 00:00:00 2001 From: Richard Newton Date: Sat, 13 Mar 2021 10:51:52 -0500 Subject: [PATCH 28/32] Update README.md --- README.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 82fd8a9..f231d5a 100644 --- a/README.md +++ b/README.md @@ -5,6 +5,10 @@ Script/Utility/Application to debloat Windows 10, to remove Windows pre-installed unnecessary applications, stop some telemetry functions, stop Cortana from being used as your Search Index, to disable unnecessary scheduled tasks, and more... +## Donate a cup of coffee +Buy Me A Coffee + + ## Disclaimer **WARNING:** I do **NOT** take responsibility for what may happen to your system! Run scripts at your own risk! @@ -179,7 +183,3 @@ There may be some confusion, but when using the Allowlist/Blocklist, the checkma ## Credits Thank you to [a60wattfish](https://github.com/a60wattfish), [abulgatz](abulgatz), [xsisbest](https://github.com/xsisbest), [Damian](https://github.com/Damian), [Vikingat-RAGE](https://github.com/Vikingat-RAGE), Reddit user [/u/GavinEke](https://github.com/GavinEke), and all of the contributors (https://github.com/Sycnex/Windows10Debloater/graphs/contributors) for the suggestions, code, changes, and fixes that you have all graciously worked hard on and shared! You all have done a fantastic job! - - -## Donate a cup of coffee -Buy Me A Coffee From 4e2b13f22f29c8f59593ace2dded3d6a135e1ac5 Mon Sep 17 00:00:00 2001 From: Richard Newton Date: Sat, 13 Mar 2021 11:16:16 -0500 Subject: [PATCH 29/32] Update README.md --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index f231d5a..dcd3f95 100644 --- a/README.md +++ b/README.md @@ -8,6 +8,7 @@ Script/Utility/Application to debloat Windows 10, to remove Windows pre-installe ## Donate a cup of coffee Buy Me A Coffee +Be sure to look at the Contributors' Githubs to see if they have GitHub sponsorships as well, since they have contributed to this open source project. (https://github.com/Sycnex/Windows10Debloater/graphs/contributors) ## Disclaimer From 0d558e787bfcc3a37d56611fc55620b697e94d20 Mon Sep 17 00:00:00 2001 From: Richard Newton Date: Sat, 13 Mar 2021 11:26:24 -0500 Subject: [PATCH 30/32] Update README.md --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index dcd3f95..d0afa7b 100644 --- a/README.md +++ b/README.md @@ -13,6 +13,7 @@ Be sure to look at the Contributors' Githubs to see if they have GitHub sponsors ## Disclaimer **WARNING:** I do **NOT** take responsibility for what may happen to your system! Run scripts at your own risk! +Also, other variants of this repo are not technically "new" versions of this, but they are different in their own respective ways. There are some sites saying that other projects are "new" versions of this, but that is inaccurate. ## How To Run the Windows10Debloater.ps1 and the Windows10DebloaterGUI.ps1 files From 01770eb21d04dfca9007e9aadf751d3d87584132 Mon Sep 17 00:00:00 2001 From: Richard Newton Date: Fri, 19 Mar 2021 20:16:00 -0400 Subject: [PATCH 31/32] Fixed CustomList not saving The customlist was not saving as explained in issue #345. The issue was that on lines 529 and 537 it was set as $CustomizeForm.Controls when it should have instead been $ListPanel.Controls. Verified that the fix works. --- Windows10DebloaterGUI.ps1 | 108 +++++++++++++++----------------------- 1 file changed, 41 insertions(+), 67 deletions(-) diff --git a/Windows10DebloaterGUI.ps1 b/Windows10DebloaterGUI.ps1 index 85a0962..db861d4 100644 --- a/Windows10DebloaterGUI.ps1 +++ b/Windows10DebloaterGUI.ps1 @@ -35,7 +35,6 @@ If (!([Security.Principal.WindowsPrincipal][Security.Principal.WindowsIdentity]: } } - #Unnecessary Windows 10 AppX apps that will be removed by the blacklist. $global:Bloatware = @( "Microsoft.PPIProjection" @@ -218,7 +217,7 @@ $Form.FormBorderStyle = 'FixedSingle' $Form.MinimizeBox = $false $Form.MaximizeBox = $false $Form.ShowIcon = $false -$Form.text = "Windows10Debloater" +$Form.text = "Windows10Debloader" $Form.TopMost = $false $Form.BackColor = [System.Drawing.ColorTranslator]::FromHtml("#252525") @@ -270,7 +269,7 @@ $Debloat.ForeColor = [System.Drawing.ColorTranslator]::FromHtml("# $CustomizeBlacklist = New-Object system.Windows.Forms.Button $CustomizeBlacklist.FlatStyle = 'Flat' -$CustomizeBlacklist.text = "CUSTOMISE BLOCKLIST" +$CustomizeBlacklist.text = "CUSTOMISE BLACKLIST" $CustomizeBlacklist.width = 460 $CustomizeBlacklist.height = 30 $CustomizeBlacklist.Anchor = 'top,right,left' @@ -290,7 +289,7 @@ $RemoveAllBloatware.ForeColor = [System.Drawing.ColorTranslator]::FromHtml("# $RemoveBlacklistedBloatware = New-Object system.Windows.Forms.Button $RemoveBlacklistedBloatware.FlatStyle = 'Flat' -$RemoveBlacklistedBloatware.text = "REMOVE BLOATWARE WITH CUSTOM BLOCKLIST" +$RemoveBlacklistedBloatware.text = "REMOVE BLOATWARE WITH CUSTOM BLACKLIST" $RemoveBlacklistedBloatware.width = 460 $RemoveBlacklistedBloatware.height = 30 $RemoveBlacklistedBloatware.Anchor = 'top,right,left' @@ -489,10 +488,6 @@ Else { Start-Transcript -OutputDirectory "${DebloatFolder}" -Write-Output "Creating System Restore Point if one does not already exist. If one does, then you will receive a warning. Please wait..." -Checkpoint-Computer -Description "Before using W10DebloaterGUI.ps1" - - #region gui events { $CustomizeBlacklist.Add_Click( { $CustomizeForm = New-Object System.Windows.Forms.Form @@ -502,7 +497,7 @@ $CustomizeBlacklist.Add_Click( { $CustomizeForm.MinimizeBox = $false $CustomizeForm.MaximizeBox = $false $CustomizeForm.ShowIcon = $false - $CustomizeForm.Text = "Customize Allowlist and Blocklist" + $CustomizeForm.Text = "Customize Whitelist and Blacklist" $CustomizeForm.TopMost = $false $CustomizeForm.AutoScroll = $false $CustomizeForm.BackColor = [System.Drawing.ColorTranslator]::FromHtml("#252525") @@ -518,7 +513,7 @@ $CustomizeBlacklist.Add_Click( { $SaveList = New-Object System.Windows.Forms.Button $SaveList.FlatStyle = 'Flat' - $SaveList.Text = "Save custom Allowlist and Blocklist to custom-lists.ps1" + $SaveList.Text = "Save custom Whitelist and Blacklist to custom-lists.ps1" $SaveList.width = 480 $SaveList.height = 30 $SaveList.Location = New-Object System.Drawing.Point(10, 530) @@ -531,7 +526,7 @@ $CustomizeBlacklist.Add_Click( { $ErrorActionPreference = 'SilentlyContinue' '$global:WhiteListedApps = @(' | Out-File -FilePath $PSScriptRoot\custom-lists.ps1 -Encoding utf8 - @($CustomizeForm.controls) | ForEach { + @($ListPanel.controls) | ForEach { if ($_ -is [System.Windows.Forms.CheckBox] -and $_.Enabled -and !$_.Checked) { " ""$( $_.Text )""" | Out-File -FilePath $PSScriptRoot\custom-lists.ps1 -Append -Encoding utf8 } @@ -539,7 +534,7 @@ $CustomizeBlacklist.Add_Click( { ')' | Out-File -FilePath $PSScriptRoot\custom-lists.ps1 -Append -Encoding utf8 '$global:Bloatware = @(' | Out-File -FilePath $PSScriptRoot\custom-lists.ps1 -Append -Encoding utf8 - @($CustomizeForm.controls) | ForEach { + @($ListPanel.controls) | ForEach { if ($_ -is [System.Windows.Forms.CheckBox] -and $_.Enabled -and $_.Checked) { " ""$($_.Text)""" | Out-File -FilePath $PSScriptRoot\custom-lists.ps1 -Append -Encoding utf8 } @@ -675,7 +670,7 @@ $RemoveBlacklistedBloatware.Add_Click( { Write-Host "...and the final cleanup..." Get-AppxPackage -AllUsers | Where-Object Name -cmatch $global:BloatwareRegex | Remove-AppxPackage } - Write-Host "`n`n`n`n`n`n`n`n`n`n`n`n`n`n`n`n`nRemoving blocklisted Bloatware.`n" + Write-Host "`n`n`n`n`n`n`n`n`n`n`n`n`n`n`n`n`nRemoving blacklisted Bloatware.`n" DebloatBlacklist Write-Host "Bloatware removed!" }) @@ -873,64 +868,43 @@ $RemoveAllBloatware.Add_Click( { } Function UnpinStart { - # https://superuser.com/a/1442733 - # Requires -RunAsAdministrator + #Credit to Vikingat-Rage + #https://superuser.com/questions/1068382/how-to-remove-all-the-tiles-in-the-windows-10-start-menu + #Unpins all tiles from the Start Menu + Write-Host "Unpinning all tiles from the start menu" + (New-Object -Com Shell.Application). + NameSpace('shell:::{4234d49b-0245-4df3-b780-3893943456e1}'). + Items() | + % { $_.Verbs() } | + ? { $_.Name -match 'Un.*pin from Start' } | + % { $_.DoIt() } + } -$START_MENU_LAYOUT = @" - - - - - - - - -"@ + Function Remove3dObjects { + #Removes 3D Objects from the 'My Computer' submenu in explorer + Write-Output "Removing 3D Objects from explorer 'My Computer' submenu" + $Objects32 = "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\NameSpace\{0DB7E03F-FC29-4DC6-9020-FF41B59E513A}" + $Objects64 = "HKLM:\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\NameSpace\{0DB7E03F-FC29-4DC6-9020-FF41B59E513A}" + If (Test-Path $Objects32) { + Remove-Item $Objects32 -Recurse + } + If (Test-Path $Objects64) { + Remove-Item $Objects64 -Recurse + } + } - $layoutFile="C:\Windows\StartMenuLayout.xml" + + Function CheckDMWService { - #Delete layout file if it already exists - If(Test-Path $layoutFile) - { - Remove-Item $layoutFile + Param([switch]$Debloat) + + If (Get-Service dmwappushservice | Where-Object { $_.StartType -eq "Disabled" }) { + Set-Service dmwappushservice -StartupType Automatic } - #Creates the blank layout file - $START_MENU_LAYOUT | Out-File $layoutFile -Encoding ASCII - - $regAliases = @("HKLM", "HKCU") - - #Assign the start layout and force it to apply with "LockedStartLayout" at both the machine and user level - foreach ($regAlias in $regAliases){ - $basePath = $regAlias + ":\SOFTWARE\Policies\Microsoft\Windows" - $keyPath = $basePath + "\Explorer" - IF(!(Test-Path -Path $keyPath)) { - New-Item -Path $basePath -Name "Explorer" - } - Set-ItemProperty -Path $keyPath -Name "LockedStartLayout" -Value 1 - Set-ItemProperty -Path $keyPath -Name "StartLayoutFile" -Value $layoutFile - } - - #Restart Explorer, open the start menu (necessary to load the new layout), and give it a few seconds to process - Stop-Process -name explorer - Start-Sleep -s 5 - $wshell = New-Object -ComObject wscript.shell; $wshell.SendKeys('^{ESCAPE}') - Start-Sleep -s 5 - - #Enable the ability to pin items again by disabling "LockedStartLayout" - foreach ($regAlias in $regAliases){ - $basePath = $regAlias + ":\SOFTWARE\Policies\Microsoft\Windows" - $keyPath = $basePath + "\Explorer" - Set-ItemProperty -Path $keyPath -Name "LockedStartLayout" -Value 0 - } - - #Restart Explorer and delete the layout file - Stop-Process -name explorer - - # Uncomment the next line to make clean start menu default for all new users - #Import-StartLayout -LayoutPath $layoutFile -MountPath $env:SystemDrive\ - - Remove-Item $layoutFile + If (Get-Service dmwappushservice | Where-Object { $_.Status -eq "Stopped" }) { + Start-Service dmwappushservice + } } Function CheckInstallService { @@ -947,7 +921,7 @@ $START_MENU_LAYOUT = @" DebloatAll Write-Host "Removing leftover bloatware registry keys." Remove-Keys - Write-Host "Checking to see if any Allowlisted Apps were removed, and if so re-adding them." + Write-Host "Checking to see if any Whitelisted Apps were removed, and if so re-adding them." FixWhitelistedApps Write-Host "Stopping telemetry, disabling unneccessary scheduled tasks, and preventing bloatware from returning." Protect-Privacy From 652e42361ac73511ae7a5c1715da9b4e91425ec1 Mon Sep 17 00:00:00 2001 From: Woomy Date: Sat, 20 Mar 2021 18:32:53 +0100 Subject: [PATCH 32/32] Added easy launch batchs (#212) * Added easy launch batchs * fixes Co-authored-by: Woomy4680-exe --- Start_GUI.bat | 4 ++++ Start_NOGUI.bat | 4 ++++ Start_SysPrep.bat | 4 ++++ 3 files changed, 12 insertions(+) create mode 100644 Start_GUI.bat create mode 100644 Start_NOGUI.bat create mode 100644 Start_SysPrep.bat diff --git a/Start_GUI.bat b/Start_GUI.bat new file mode 100644 index 0000000..d793c8e --- /dev/null +++ b/Start_GUI.bat @@ -0,0 +1,4 @@ +@echo off +cls +echo Starting Windows10DebloaterGUI ... +@powershell.exe -NoProfile -ExecutionPolicy Bypass -File "%~dp0./Windows10DebloaterGUI.ps1" \ No newline at end of file diff --git a/Start_NOGUI.bat b/Start_NOGUI.bat new file mode 100644 index 0000000..0ec6025 --- /dev/null +++ b/Start_NOGUI.bat @@ -0,0 +1,4 @@ +@echo off +cls +echo Starting Windows10Debloater... +@powershell.exe -NoProfile -ExecutionPolicy Bypass -File "%~dp0./Windows10Debloater.ps1" \ No newline at end of file diff --git a/Start_SysPrep.bat b/Start_SysPrep.bat new file mode 100644 index 0000000..570befc --- /dev/null +++ b/Start_SysPrep.bat @@ -0,0 +1,4 @@ +@echo off +cls +echo Starting Windows10Debloater SysPrep... +@powershell.exe -NoProfile -ExecutionPolicy Bypass -File "%~dp0./Windows10SysPrepDebloater.ps1" \ No newline at end of file