Are you facing an annoying issue where NumLock is enabled every time you start Microsoft Windows? Don’t worry; we’ve got you covered! In this post, we’ll guide you through simple and effective steps to solve this problem once and for all. Say goodbye to NumLock frustrations and hello to a smoother Windows startup experience. Let’s dive right in!
Method 1 – Registry Setting
Note: You may have to turn off Fast Startup to make these work. You can go to Control Panel System > Hardware and Sound > Power Options > Choose what the power button does, then select on Change settings that are currently unavailable, turn off Fast Startup and select Save.
Manual Change Using Regedit
- 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:
- HKEY_USERS
- .Default
- Control Panel
- Keyboard
- Change the value of InitialKeyboardIndicators
- Set it to 0 to set NumLock OFF
- Set it to 2 to set NumLock ON
PowerShell Script
Use the following PowerShell code:
Enable Num Lock:
Set-ItemProperty -Path 'Registry::HKU\.DEFAULT\Control Panel\Keyboard' -Name "InitialKeyboardIndicators" -Value "2"
If this doesn’t work for you, try this:
Set-ItemProperty -Path 'Registry::HKU\.DEFAULT\Control Panel\Keyboard' -Name "InitialKeyboardIndicators" -Value "2147483648"
Disable Num Lock:
Set-ItemProperty -Path 'Registry::HKU\.DEFAULT\Control Panel\Keyboard' -Name "InitialKeyboardIndicators" -Value "0"
If this doesn’t work for you, try this:
Set-ItemProperty -Path 'Registry::HKU\.DEFAULT\Control Panel\Keyboard' -Name "InitialKeyboardIndicators" -Value "2147483650"
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, causing certain letters to act as a numeric keypad. This is a common occurrence for laptop users.
In most cases, you will find a “Fn” and “NumLk” key that can be used to toggle this setting on or off. Hold the “Fn” key and then press “NumLk” to toggle the numeric keypad functionality.
Method 3 – BIOS Setting
Most computers, including virtual machines, will have a BIOS setting that controls whether NumLock is enabled or disabled at startup. You can usually enter the BIOS by pressing a specific key, such as “Delete” or “F1,” during the startup process 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")
WshShell.SendKeys "{NUMLOCK}"
- 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“.
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.