Skip to content
Fixes & Errors

NumLock Keeps Turning Off on Windows 11: The Registry Hold

NumLock keeps turning off Windows 11 after every restart, sleep, or login. Here are all the real fixes — registry, BIOS, Fast Startup, login screen, and keyboard firmware.

NumLock Keeps Turning Off on Windows 11: The Registry Hold

NumLock turning off automatically in Windows 11 — every restart resets it, or it spontaneously disables itself during work — is a problem with a frustrating history. Microsoft has a Settings toggle that’s supposed to control this but doesn’t work reliably. The fix that actually holds requires a small registry edit and sometimes a BIOS setting change. This fits into the wider topic we cover in our Complete Guide to Fixing Windows, Browser, and Software Errors.

The registry edit that works: Win+R → regedit → navigate to HKEY_USERS.DEFAULTControl PanelKeyboard → set InitialKeyboardIndicators to 2147483650. Restart. NumLock now turns on at every boot. The value “2” alone (which many guides suggest) doesn’t work in Windows 11 — the longer value above is what actually persists.

If NumLock still turns off after the registry edit, the cause is BIOS-side — your laptop or motherboard has a setting that overrides Windows. Boot into BIOS (F2, F10, or Del during startup) and look for “POST NumLock,” “NumLock State,” or “Boot Up NumLock Status” in Advanced or Boot settings. Set it to On. The combined registry + BIOS fix resolves nearly every case. Full walkthrough below.

Fix 1: Registry setting for NumLock at startup

Windows reads the initial NumLock state from the registry at boot. The correct value to keep NumLock on:

HKEY_USERS.DEFAULTControl PanelKeyboard
InitialKeyboardIndicators = 2

Win+R → regedit → navigate to HKEY_USERS.DEFAULTControl PanelKeyboard → double-click “InitialKeyboardIndicators” → change the value to 2 → OK. Also set the same value at:

HKEY_CURRENT_USERControl PanelKeyboard → InitialKeyboardIndicators → 2

Value meanings: 0 = all lock keys off, 1 = Caps Lock on, 2 = NumLock on, 3 = Scroll Lock on, 4 = Num+Caps Lock on. Setting both the .DEFAULT (controls the login screen state) and CURRENT_USER (controls the logged-in session state) ensures NumLock stays on in both contexts.

Fix 2: BIOS NumLock setting

Many motherboard BIOSes have a “Boot NumLock” or “NumLock on Boot” setting that controls NumLock state before Windows loads. If this is set to Off: Windows reads the off state and the registry setting may not override it correctly on all systems.

Enter BIOS (F2 or Delete at startup) → look for “NumLock” in Boot, POST, or Keyboard settings → set to “On” or “Enabled” → save and exit. After changing: set the registry values above as well for belt-and-suspenders reliability.

Fix 3: Login screen NumLock

Windows 11’s login screen maintains a separate NumLock state. If NumLock is on when you’re logged in but resets when you lock the screen and log back in: the login screen is resetting it. The HKEY_USERS.DEFAULT registry key (Fix 1) specifically controls the login screen NumLock state. Setting InitialKeyboardIndicators to 2 there resolves the login screen reset independently of the per-user session setting.

Fix 4: Accessibility features resetting NumLock

Toggle Keys (an accessibility feature that plays sounds when lock keys are pressed) can interfere with NumLock behaviour on some configurations. Settings → Accessibility → Keyboard → Toggle Keys → Off. Mouse Keys is another feature that uses the numeric keypad for cursor control, which conflicts with NumLock-based number entry. Settings → Accessibility → Mouse → Mouse Keys → confirm it’s Off if you don’t use it.

Fix 5: Keyboard software overriding NumLock

Gaming keyboards and their associated software (Logitech G Hub, Razer Synapse, Corsair iCUE) sometimes have profiles that set specific lock key states. If NumLock resets when the keyboard software loads: check the keyboard’s software for any NumLock setting in the active profile. Disable the NumLock override in the software profile or switch to a profile without lock key management.

Some keyboards also have a “NumLock state” option in their BIOS-style hardware programming — check the keyboard’s manual if it has onboard memory for profiles, as these persist regardless of Windows settings.

NumLock and Fast Startup

Windows 11’s Fast Startup uses a hybrid shutdown that saves some system state to disk. The saved state can include lock key states that override the registry settings on the next startup. If NumLock keeps resetting despite correct registry values:

  1. Disable Fast Startup: Control Panel → Power Options → “Choose what the power buttons do” → uncheck “Turn on fast startup”
  2. After a full restart (not just shutdown/startup): set NumLock on → check if it persists through the next restart with Fast Startup disabled

If NumLock persists without Fast Startup: the saved Fast Startup state was overriding the registry. With Fast Startup disabled: subsequent startups should maintain the registry-specified NumLock state.

Our guide on keyboard input issues covers the keyboard settings and layout issues that affect numeric input alongside NumLock. For the accessibility features that interact with keyboard lock states, our keyboard accessibility guide covers the full set of Filter Keys, Sticky Keys, and Toggle Keys settings. Microsoft’s keyboard settings documentation covers the numeric keypad input modes and the Ease of Access keyboard settings that affect lock key behaviour across different accessibility configurations.

Different NumLock behaviour on laptops

Laptop keyboards without a dedicated numeric keypad use Fn+NumLock to activate a “number layer” on certain keys (usually J=1, K=2, L=3, etc.). On these laptops: “NumLock on” enables this number overlay, which many users find confusing because typing letters suddenly produces numbers. NumLock on a laptop without a dedicated numpad is often better left off unless you specifically need the number layer. Desktop keyboards with a dedicated numeric keypad behave differently — NumLock on is almost always the preferred state for normal use.

PowerShell command to set NumLock state

For a quick way to force NumLock on from the command line or a script:

$wshell = New-Object -com Wscript.Shell
$wshell.SendKeys("{NUMLOCK}")

This PowerShell snippet simulates pressing NumLock, toggling its current state. If NumLock is currently off: running this turns it on. For a startup script that ensures NumLock is on: add a check for the current state before sending the keypress, or simply run it as part of a logon script knowing the starting state.

Task Scheduler to maintain NumLock state

As a more robust solution: a scheduled task that runs at login and sets NumLock on ensures the correct state regardless of BIOS, registry, or Fast Startup interactions:

  1. Create a PowerShell script (.ps1) with the SendKeys code above
  2. Task Scheduler → Create Basic Task → trigger “At log on” → action “Start a program” → PowerShell.exe → arguments: -File “C:pathtoyourscript.ps1” -WindowStyle Hidden

The -WindowStyle Hidden prevents a Command Prompt window from appearing at login. This task runs every login and sets NumLock before any applications start, overriding whatever state the boot process left it in.

Domain-joined machines and NumLock policy

In corporate environments: Group Policy can control keyboard lock key states at login. Computer Configuration → Windows Settings → Security Settings → Local Policies → Security Options → “Interactive Logon: Machine inactivity limit” (and nearby policies) can affect lock key states. The NumLock state at the domain login screen is specifically configurable through domain GPO. If NumLock resets on a domain machine and registry changes don’t persist: Group Policy is overriding them. Contact IT to adjust the domain NumLock policy.

Remote Desktop and NumLock

Remote Desktop (RDP) sessions send NumLock state to the remote machine based on the local machine’s NumLock state at connection time. If NumLock is off on the local machine when you start an RDP session: the remote machine’s numeric keypad may not work as expected. Turning NumLock on locally before starting the RDP session ensures the remote session receives the correct state. Some RDP clients also have settings for sending specific lock key states to the remote machine — check the client’s settings if NumLock behaviour in RDP sessions is inconsistent.

NumLock and virtual machines

Virtual machines (VMware, VirtualBox, Hyper-V) have their own NumLock state independent of the host machine. The VM’s keyboard settings determine whether the guest OS inherits the host’s NumLock state or maintains its own. VMware: VM Settings → Keyboard → “NumLock state.” VirtualBox: Input → Keyboard → controls whether lock keys are synced. If NumLock behaves differently inside a VM than on the host: configure the VM’s keyboard synchronisation settings rather than the Windows registry.

Combined registry and BIOS fix

For the most reliable NumLock persistence across all scenarios:

  1. BIOS: set Boot NumLock to “On”
  2. Registry (HKEY_USERS.DEFAULT): InitialKeyboardIndicators = 2
  3. Registry (HKEY_CURRENT_USER): InitialKeyboardIndicators = 2
  4. Disable Fast Startup (if still resetting)
  5. Check keyboard software for NumLock overrides

Implementing all five together addresses every layer where NumLock state can be set or overridden. If NumLock still resets after all five: a scheduled task running at login (above) is the failsafe solution that works regardless of what else is resetting it.

When does it reset?CauseFix
Every cold boot/restartBIOS setting or registry value wrongSet BIOS NumLock On; set registry to 2
After locking screen and logging back inLogin screen resets NumLock stateSet HKEY_USERS.DEFAULT registry value to 2
Randomly during useKeyboard software profile or Toggle KeysCheck keyboard software; disable Toggle Keys
After shutdown/startup (not restart)Fast Startup saving wrong stateDisable Fast Startup; do full restart; re-enable
On domain machine, settings revertGroup Policy overrideContact IT; check domain GPO for keyboard settings

NumLock persistence is one of those Windows issues that feels like it should be a simple setting change but can require multiple layers of configuration to resolve permanently. The registry fix combined with the BIOS setting handles most home user cases. The Fast Startup interaction explains the “it resets sometimes but not always” pattern. The scheduled task approach is the final fallback that works on any machine regardless of what else is competing to set the NumLock state.

For users who primarily use the laptop’s number row (the digits above QWERTY) rather than the numeric keypad: NumLock state doesn’t affect the number row at all. The number row always types numbers regardless of NumLock. NumLock exclusively affects the dedicated numeric keypad (on full-size keyboards) or the overlaid number keys (on laptops with number overlay). If the number row is working correctly and only the numpad is behaving unexpectedly: NumLock is confirmed as the cause.

AutoHotkey script for NumLock persistence

AutoHotkey (free scripting tool) can monitor and maintain NumLock state continuously:

; Force NumLock on and keep it on
NumLock::
if (!GetKeyState("NumLock", "T"))
    SetNumLockState, On
return

~NumLock::
SetNumLockState, On
return

This script intercepts NumLock key presses and immediately re-enables NumLock if it’s turned off. The AutoHotkey script runs in the system tray and prevents anything from disabling NumLock. This is a last-resort approach for machines where all other fixes have been tried and NumLock keeps resetting — it provides absolute persistence at the cost of preventing manual NumLock toggle.

Checking the current InitialKeyboardIndicators value

Before changing registry values: confirm the current value to understand why NumLock is off. In Command Prompt:

reg query "HKCUControl PanelKeyboard" /v InitialKeyboardIndicators

A value of 0 or 2147483648 (which Windows sometimes writes instead of 0) means NumLock off at startup. A value of 2 means NumLock on. If the current user value is 2 but NumLock still resets: the .DEFAULT key (login screen) or BIOS is overriding it. Query the .DEFAULT key similarly to see its current value.

NumLock persistence issues are more prevalent on Windows 11 than previous versions partly because of Fast Startup’s widespread use (it’s enabled by default) and because Windows 11’s login screen has a more separated NumLock state from the user session. Understanding that Windows maintains NumLock state in at least three independent locations (BIOS, .DEFAULT registry key for login screen, CURRENT_USER registry key for the user session) explains why changing one location doesn’t always fix the problem. When each location has the correct value and Fast Startup is handled: NumLock stays on reliably through any combination of sleep, hibernate, restart, lock/unlock, and user switch.

A practical suggestion for anyone who regularly needs the numeric keypad: keeping a sticky note with the “NumLock is off” mental note near the computer helps distinguish between “I keep mistyping numbers” and “NumLock is off again” — the symptoms feel similar when you’re in the middle of data entry. Checking the NumLock indicator on the keyboard (most keyboards have a NumLock LED; some show it in the system tray or on OSD) before investigating driver or software issues saves troubleshooting time. The fix is always simple; the challenge is recognising NumLock state as the cause rather than assuming a hardware failure.

Windows 11 startup scripts for NumLock

For a less invasive alternative to the scheduled task: placing a .bat file in the Windows Startup folder ensures NumLock is set at every login without needing Task Scheduler configuration:

@echo off
powershell -command "$wshell = New-Object -com Wscript.Shell; $wshell.SendKeys('{NUMLOCK}')"

Win+R → shell:startup → save this .bat file there with a descriptive name like “SetNumLock.bat.” Ensure NumLock is currently off before saving, so the startup script toggles it to on. Or use the longer version that checks current state and only enables if it’s off — either approach works for the vast majority of users where the starting state is reliably off after boot.

The NumLock problem is one of the few Windows issues where the correct fix involves multiple configuration layers simultaneously rather than a single setting change. The registry + BIOS combination handles 90%+ of cases. The Fast Startup awareness handles most of the remaining cases. The scheduled task or startup script handles the edge cases where BIOS or registry settings can’t be applied (corporate-managed machines where BIOS is locked) or where another application keeps resetting the state. Working through the layers systematically rather than trying each in isolation produces faster resolution than randomly trying fixes. If this sounds familiar, Screen Resolution Keeps Changing in Windows 11 is worth a look.

Nikolas Lamprou

Nikolas Lamprou (MSc; GCFR, SC-200, Security+) has been working with computers professionally since 2009 — starting with web development and e-commerce, and moving into cybersecurity over the years. Based in Greece, he brings over 15 years of real-world IT experience to SolveTechToday, where he writes about Windows fixes, software reviews, security tools, and AI applications. His goal is straightforward: cut through the noise and give readers clear, honest guidance on the tech decisions that matter.

Stay Ahead

Fix your next problem before it starts

Get the week's best Windows fixes, software picks, and security guides delivered straight to your inbox. No noise, just solutions.

Press ESC to close · Try "Windows 11" or "Chrome"