Debloat & Optimize Windows 10
October 23, 2020

Debloat & Optimize Windows 10

In this post I aim to describe the steps that I take to de-bloat & optimize a Windows 10 installation. This is mostly to serve my own memory but I did want to share it with anyone else who might benefit, and as such, it will be more of an outline with screenshots instead of a step-by-step guide.

Updated on: 10/23/2020

Applicable for: Windows 10 Professional, v 1909

Basics - you should know this if you're here :-)

  • To open the "run dialog" to run a program, type WIN + r
  • To run anything with administrative privileges, open the run dialog and hit CTRL + SHIFT + ENTER
  • To run something in an elevated command prompt, combine the previous two steps:  WIN + r, type "cmd", and press SHIFT + ENTER
  • To open Powershell, just run "Powershell"
  • To open user management, run lusrmgr.msc
  • Get to the classic Network Connections panel: run ncpa.cpl
  • Find out your windows version: run winver
  • Open the task scheduler: run taskschd.msc
  • Open registry editor: run regedit

Some Tools

Steps

(0) Install all updates

Before getting started get windows up to date with all patches etc. since newer patches might undo some of the changes that we will implement.

(1) Install Basic Utilities

which we will use further on:

(1) Reign in Windows Update

Settings → Updates & Security → Advanced Options

→ Delivery Optimization

Optional: Use Sordum to Disable Further Automatic Updates

You could try to manually disable the windows update service, but a more surefire way is to use Sordum. Search for the most recent version of their Windows Update Blocker.

Of course, re-enable windows update every once in a while!

(2) Run Sophia to Optimize

Download current version from: https://github.com/farag2/Windows-10-Sophia-Script & unzip to a local folder

Edit Sophia.ps1 to your liking, my changes were:

#DisableSigninInfo
#DisableLanguageListAccess
#DisableWindowsWelcomeExperience
#EnableWindowsTips
DisableWindowsTips
#HideTaskViewButton
#ShowSecondsInSystemClock
#ShowTrayIcons
#WindowsColorSchemeDark
#AppModeDark
#DisableNewAppInstalledNotification
#HideFirstSigninAnimation
#UninstallOneDrive

About Storage Sense:

Storage Sense is the Disk Cleanup replacement for the modern world. It frees up space on your computer by deleting things like recycle bin contents, temporary internet files, and app temporary files. This also includes the Downloads folder, but you can change that if you don’t want Storage Sense emptying it.
#EnableStorageSenseRecycleBin
DisableStorageSenseRecycleBin
#DisableHibernate
EnableHibernate
#SetTempPath
#EnableWin32LongPaths
#DisableDeliveryOptimization
DisableUpdatesMicrosoftProducts
#EnableUpdatesMicrosoftProducts
#DesktopPowerManagementScheme
#ChangeUserShellFolderLocation
#AutomaticRecommendedTroubleshooting
#DisableAutoplay
#EnableSmartActiveHours
DisableSmartActiveHours
#SetAppGraphicsPerformance
#DisableAppsSmartScreen
#HideSendToContext
#DisablePreviousVersionsPage

Then, run the script from an elevated powershell:

Set-ExecutionPolicy -ExecutionPolicy Bypass -Scope Process -Force
.\Sophia.ps1

After running the tool, it will show any errors that it encountered:

Restart your PC!

(3) Privacy

Settings → Privacy

& go through each page (Speech, Inking, etc.) & turn off as required

(4) Disable File Content Indexing

Windows Explorer → C: drive → Properties

Use Everything instead of Windows' own indexing feature!

(5) Enable F8 at Startup

There are various ways to do this, the simplest is to run the following in an elevated command prompt:

bcdedit /set {default} bootmenupolicy standard

If this doesn't work, you can also try: bcdedit /set {current} bootmenupolicy standard or read this article

You can also choose to always display a boot menu, set the timeout, or disable it with the following commands:

bcdedit /set {bootmgr} displaybootmenu yes
bcdedit /set {bootmgr} timeout 5
bcdedit /set {bootmgr} displaybootmenu no

(6) Conclusively stop wake timers from waking Windows 10 desktop

You can check what last woke your computer from an elevated command prompt with: powercfg /LASTWAKE

Find a list of scheduled services that may wake your computer: powercfg /WAKETIMERS

Check your BIOS for any possible settings, such was disabling wake-on-lan.

→ then, follow this superuser thread as well as this article; I will also paraphrase in short:

(6.1) Disable Wake Timers for All Power Profiles

(6.2) Revoke "Wake" Privileges from Scheduled Tasks

  1. Download PSTools
  2. Open an elevated command prompt, and from your PSTools directory run psexec.exe -i -s %windir%\system32\mmc.exe /s taskschd.msc (this opens up task scheduler with system permissions)
  3. Go to Task Scheduler Library → Microsoft → Windows → UpdateOrchestrator
  4. Go through each task there and ensure that "Wake the computer to run this task" is not checked
  5. You can also disable each task that was set to wake the computer (for example: Reboot, Reboot_AC, or Backup Scan, UpdateAssistantWakeupRun
  6. Find each task in the following folder in file explorer: C:\Windows\System32\Tasks\Microsoft\Windows\UpdateOrchestrator, make yourself the owner, and remove "Modify" and "Full Control" permissions from every user that has is, also disable inheritance
  7. Find any more scheduled tasks that are set to wake the computer: in an elevated powershell, run Get-ScheduledTask | where {$_.settings.waketorun}
  8. Remove the "Wake Computer" permission from each task that was found

(6.3) Disable Hardware from Waking Up Your PC

In an elevated command prompt, run: powercfg -devicequery wake_armed

For each device found, go to device manager and adjust settings (usually in the Power Managemen tab).

(6.4) Group Policy

In group policy editor, disable: Computer ConfigurationAdministrative TemplatesWindows ComponentsWindows UpdateEnabling Windows Update Power Management to automatically wake up the system to install scheduled updates.

(6.5) Automatic Maintenance

Control PanelSecurity and MaintenanceMaintenanceChange Maintenance Settings, and set to a normal time of day:

(6.6) Set Computer to Shut Down Fully

In regedit:

  1. HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\WinLogon
  2. Find or create: PowerdownAfterShutdown  (DWORD (32-bit))
  3. Set to 1 (Decimal)

Credits, sources & further reading (which isn't linked to in the text above):

Debloat & Optimize Windows 10
Share this