Solve a problem where Numlock is enabled in Microsoft Windows at startup with these steps.
Method 1 – Registry Setting
- Hold the Windows Key then press “R” to bring up the Run dialog box.
- Type “regedit“, then press “Enter“.
- Navigate to the following location in the registry:
- Control Panel
- Change the value of InitialKeyboardIndicators
- Set it to 0 to set NumLock OFF
- Set it to 2 to set NumLock ON
Use the following PowerShell code:
Enable Num Lock:
Set-ItemProperty -Path 'Registry::HKU\.DEFAULT\Control Panel\Keyboard' -Name "InitialKeyboardIndicators" -Value "2"
Disable Num Lock:
Set-ItemProperty -Path 'Registry::HKU\.DEFAULT\Control Panel\Keyboard' -Name "InitialKeyboardIndicators" -Value "0"
You can launch this and other PowerShell scripts at startup. Visit this post on using PowerShell to create a job that runs at startup to learn how.
Method 2 – Function Keys
You may have inadvertently pressed a key combination on your keyboard to cause certain letters on your keyboard to be used as a numeric keypad. This is normally the case for laptop users.
In most cases, you will have a “Fn” and “NumLk” key that can be used to toggle this setting on or off. Hold the “Fn” key, then press “NumLk” to toggle the numeric keypad on or off.
Method 3 – BIOS Setting
Most computers, including virtual machines will have a BIOS setting that controls whether or not NumLock is enabled or disabled at startup. You can usually enter the BIOS by pressing a certain key such as “Delete” or “F1” at startup before Windows loads. Once in the BIOS, you should be able to find a setting that controls NumLock.
Method 4 – Startup or Logon Script
If you’re an administrator looking for a way to set the Num Lock on at startup, you can do so using a logon script. There is no specific Group Policy setting to accomplish this. Instead use the following.
- Copy and paste the following into a Notepad document, then save it as “numlock.vbs“:
set WshShell = CreateObject("WScript.Shell")
- Do one of the following:
- Place the “numlock.vbs” file in the “Startup” folder of the target computer or user.
- Run the script through Group Policy using these steps:
- Place the “numlock.vbs” in one of the following folders:
- Local logon script path = “%SystemRoot% \ System32 \ GroupPolicy \ User Computer\ Scripts \ Logon“
- Domain logon script path = “%SysVolFolder% \ Sysvol \ Sysvol \ DomainName \ Scripts“
- Hold down the Windows Key and press “R” to bring up the Windows Run dialog box.
- Type “mmc“, then press “Enter“.
- Go to “File” > “Add/Remove Snap-in” > “Add” > “Group Policy“.
- Select the GPO you wish to use by selecting “Browse“. The default is the local computer.
- Select “Finish” > “Close” > “OK“.
- From the Group Policy Management snap-in, navigate to “User Configuration” or “Computer Configuration” > “Windows Settings” > “Scripts“.
- Double-click “Logon script“, then go to “Add” > “Browse“, then select “numlock.vbs“.
- Select “Open” > “OK” > “OK“.
- Place the “numlock.vbs” in one of the following folders:
Note: The “numlock.vbs” script will simply act like it is pressing the “Num Lock” key once. So really, it will toggle it to the opposite of what it is by default. It’s probably better to use the Registry method, but this method is handy when you’re in a bind.
peter clark says
The problem I have with Windows 11 is that it randomly (as far as I have been able to determine, but probably following some arcane logic of its own) switches my num lock on and off, sometimes (but not always) when I use the scroll bar to drop down a spreadsheet.
Hey, this helped alot so I have another question. How can I stop the caps/ num lock keys indicators from showing on the screen? Every time I use these keys or some others there are indicators on the screen which are very annoying. I tried everything in s etting and control panel but it didn’t help.
it doesnt work. only temporarily until you restart your pc which i do daily. is there a permanent solution?
i dont want to have to do this every single time i turn my pc on, just want a one and done solution.
No this did not work. I change the regedit ALL the time. Even after changing to 2, it unlocks. Please post a ‘real’ fix for non-tech types using Win10.
Volkan Korkmazer says
I would like to thank Peter Kriz as I was afraid to change the value before he pointed out that the value is broken because of UEFI. This started happening right after I changed my drive to a GPT partition so, he is correct.
Peter Kriz says
The old number 2147483648 = 0x80000000 used to mean “whatever BIOS setting is for Num lock” in old Windows (NT 3.5 … all the way to XP). Then they introduced UEFI BIOS and broke it.
I know because 20 years ago I wrote a small utility to change the registry setting and found it then in NT documentation (lost now). Don’t fear about losing something by overriding it with zero or 2.
Thank you! I used method 1. It works until next time. Unfortunately this is not permanent and very annoying.
Randy Cliff says
Couple of people have ask what the number 2147483648 is for. It’s likely that Microsoft has expanded the scope of what InitialKeyboardIndicators will impact. We all realize that there’s Num Lock and Scroll Lock and Caps Lock on our keyboards. Traditionally the value (in the registry) of zero (0) would have all 3 of these off. 1 turns on CapsLock and 2 turns on NumLock, therefore 3 turns on both, with 7 turning on all 3 lock buttons.
Well that super long number converts in hex to become 0x80000000, and in binary it’s “1” followed by 18 or so zeroes. So I don’t know what Microsoft is planning, but that seems just a little silly. But the idea is exactly the same — add “2” to turn on NumLock.
So 2147483648 should become 2147483650 — I just added “2”. Now that should work unless Win10 is doing some other dumb idea they haven’t told us about.
Kevin Carmody says
Methods 2 and 3 are not available on my machine. I tried methods 1 and 4. Neither one worked if I used the power button to shut the machine down. But method 1 works fine as long as I use software to shut the machine down, e.g. Start menu > Power or Win+X > Shut down.
Bill Murray says
I tried 2 and it did not work for me. However, entering 1 did work. I have the latest Windows 10 Pro with all feature updates as of 1/16/2021.
Yes, This worked!!!
But what do I do with “2147483648” that was previously recorded there?
What does this number means?
Danton Cavalcanti Franco Junior says
Helped me a lot.
Udith Kumar says
Thanks for the useful information man, Its working fine after following your instructions for enabling the Num lock. Remember it will updated again if it fails to.
Perfect solution for GPO managed environment.
Eelco Busch says
Eelco (the Netherlands)
dangode Ganesh says
very useful information , Thank you very much
Initial value was 2147483648. changed to 0 and numlock is off. Thanks
@Taltul No change, still as written. Even if you don’t have a physical numlock key (or it uses a Fn key) it’s still the “NUMLOCK” signal to be sent.
I don’t have a Numlock key on my keyboard (There is FN.) What combination should I use????
Susanne Jones says
YAY! The nightmare ended, NumLock is finally off.
Jeffery Whigham says