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


(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: & unzip to a local folder

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


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.

Then, run the script from an elevated powershell:

Set-ExecutionPolicy -ExecutionPolicy Bypass -Scope Process -Force

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):

(7) Enable F8 at Startup

First, head to HKEY_CURRENT_USER\Control Panel\Keyboard. Double-click the “InitialKeyboardIndicators” value in the right pane and set it to “2”.
Next, expand the “HKEY_USERS” folder. You’ll now need to repeat the above process several times, changing the InitialKeyboardIndicators value under each folder inside the HKEY_USERS folder.
Start by going to HKEY_USERS\.DEFAULT\Control Panel\Keyboard, and changing the InitialKeyboardIndicators value to 2. Next, repeat the process for the folder below the .DEFAULT folder–it’ll start with an “S-“.
Repeat this process for the remaining folders inside HKEY_USERS, changing the Control Panel\Keyboard\InitialKeyboardIndicators setting under each one.
Once you’re done, you should just be able to reboot and Windows 10 should automatically enable Num Lock at boot. However, it doesn’t actually work this way. The Fast Startup feature, also known as Hybrid Boot, overrides this setting and Windows will continue to boot with Num Lock off.
We’ve found two ways to prevent this from happening. You could disable fast startup, but we’ve found a better trick that should work for you without losing the advantages of hybrid boot.
After you run the .reg file, shut down your computer. Don’t reboot it–select the “Shut down” option.
Boot the computer back up again. When you reach the login screen, press the Num Lock key once to enable it. Don’t log into the computer. From the login screen, click the power button and select “Shut down” to shut down the computer again.
Boot the computer back up and Num Lock will be enabled on the login screen. It seems that this puts Fast Startup into a state where it will automatically enable Num Lock at every boot. Yes, this is a weird trick–but it works. (Thanks to DznyRulz on Reddit for discovering this!)
You could also prevent this from happening by disabling the Fast Startup feature after making the above tweaks to your registry. If the trick above doesn’t work for you, try disabling Fast Startup instead.
To do so, open the Control Panel, click “Hardware and Sound,” click “Power Options,” and click “Choose what the power buttons do.” Click the “Change settings that are currently unavailable link at the top of this screen, and then scroll down and uncheck the “Turn on fast startup (recommended)” option. Click “Save changes.”


Debloat & Optimize Windows 10
Share this