How to Fix Slow Windows Boot Time

6 min read

Windows taking too long to boot? Find what's causing the delay, disable startup programs, enable Fast Startup, and use Event Viewer to pinpoint slow components.

A slow boot is usually caused by too many startup programs, a failing drive, or a specific Windows component taking too long to initialize. Here's how to diagnose and fix it systematically.


Measure Current Boot Time

# Boot time from event log (Event ID 100)
Get-WinEvent -FilterHashtable @{
  LogName = 'Microsoft-Windows-Diagnostics-Performance/Operational'
  Id = 100
} -MaxEvents 5 | Select-Object TimeCreated,
  @{n='Boot(ms)';e={$_.Properties[0].Value}},
  @{n='Boot(sec)';e={[math]::Round($_.Properties[0].Value/1000,1)}}

Expected times:

  • NVMe SSD: 5–10 seconds
  • SATA SSD: 10–20 seconds
  • HDD: 30–60 seconds

If significantly longer, something is adding delay.


Find What's Causing the Delay

# Event ID 101 — which component caused delay and by how much
Get-WinEvent -FilterHashtable @{
  LogName = 'Microsoft-Windows-Diagnostics-Performance/Operational'
  Id = 101
} -MaxEvents 20 | Select-Object TimeCreated,
  @{n='Component';e={$_.Properties[1].Value}},
  @{n='Delay(ms)';e={$_.Properties[4].Value}} |
  Sort-Object 'Delay(ms)' -Descending

The top entries show which service, driver, or app is slowing boot the most.


Fix 1: Disable Startup Programs

The fastest win — every startup program adds seconds.

Ctrl + Shift + EscStartup apps tab → sort by Startup impact → disable anything High you don't need at login.

Common culprits: Spotify, Discord, Teams (personal), OneDrive, Adobe updaters, game launchers.

# View startup impact via registry
Get-ItemProperty "HKCU:\Software\Microsoft\Windows\CurrentVersion\Run" |
  Select-Object * -ExcludeProperty PS*

Fix 2: Enable Fast Startup

Fast Startup saves kernel state to disk — next boot loads it instead of reinitializing:

Control PanelPower OptionsChoose what the power buttons do → check Turn on fast startup

# Enable via registry
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\Session Manager\Power" `
  -Name "HiberbootEnabled" -Value 1 -Type DWord

Note: Fast Startup can interfere with dual-boot systems. Disable it if you dual-boot Linux.


Fix 3: Check and Optimize Drive

# Drive health
Get-PhysicalDisk | Select-Object FriendlyName, HealthStatus, MediaType

# Drive performance test
winsat disk -drive c

An HDD with degraded health significantly slows boot. An SSD below 200 MB/s sequential read needs attention.


Fix 4: Run SFC and DISM

Corrupted system files cause slow initialization:

DISM /Online /Cleanup-Image /RestoreHealth
sfc /scannow

Fix 5: Check for Slow Services

Some services time out during startup and cause delays:

# Services that failed or had issues recently
Get-WinEvent -FilterHashtable @{LogName='System'; Id=@(7000,7001,7009,7011)} -MaxEvents 20 |
  Select-Object TimeCreated, Id, Message

Event ID 7009 = service timed out waiting to start. Event ID 7011 = service failed to respond.

Identify the service and consider disabling if not needed.


Fix 6: BIOS Settings

In BIOS:

  • POST delay / Boot delay: set to 0 or minimum
  • Network/PXE boot: disable if not needed (adds 5–15 seconds)
  • Boot order: set SSD first, remove unused boot devices
  • Fast Boot / Quick Boot: enable if available

Fix 7: Clean Boot to Isolate Problem

Test without third-party services and startup programs:

Win + RmsconfigServices tab → check Hide all Microsoft servicesDisable allStartup tab → Open Task Manager → disable all → Apply → restart.

If boot is fast in clean boot — re-enable items in batches to find the culprit.


Fix 8: Rebuild Boot Configuration

# Run as Administrator
bcdedit /deletevalue {current} safeboot
bootrec /fixmbr
bootrec /fixboot
bootrec /rebuildbcd

Fix 9: Check Windows Update Pending Restart

Pending updates often cause slow boots as they process during startup:

# Check for pending updates
(New-Object -ComObject Microsoft.Update.SystemInfo).RebootRequired

If True — restart and let updates complete. Boot should be faster afterward.


Monitor Boot Over Time

# Get last 10 boot times to see if it's getting worse
Get-WinEvent -FilterHashtable @{
  LogName = 'Microsoft-Windows-Diagnostics-Performance/Operational'
  Id = 100
} -MaxEvents 10 | Select-Object TimeCreated,
  @{n='Boot(sec)';e={[math]::Round($_.Properties[0].Value/1000,1)}} |
  Sort-Object TimeCreated

A trend of increasing boot times suggests a growing problem — drive health, accumulating startup programs, or software issue.



🔍 Не знаєш що означає код помилки Windows?

Якщо Windows показує код на кшталт 0x80070005, 0x80070002 або 0xC000021A — скористайся безкоштовним інструментом:

→ Декодер помилок Windows — введи код і одразу дізнайся що він означає та як виправити.

Summary

Measure with Event ID 100. Find slow components with Event ID 101. Quickest fixes: disable high-impact startup programs, enable Fast Startup, check drive health. For stubborn cases: clean boot to isolate the culprit, then SFC/DISM for file corruption. HDD → SSD replacement is the single biggest improvement possible on older hardware.

Related articles

← All articles