Source: 

1. The no registry approach.

 

Simply boot to the login screen or the Lock screen and do the following:

  1. On the Logon/Lock screen, press the NumLock key on the keyboard to turn it on.
  2. The Login screen contains a power button in the bottom right corner. Use it to reboot Windows:

The next time Windows boots, NumLock will be automatically enabled. If this trick does not work for you for some reason, try the Registry tweak below. It should work in all modern Windows versions including Windows 10 and Windows 8.x.

2. The registry approach.

  1. Open Registry Editor.
  2. Go to the following Registry key:
    HKEY_USERS\.DEFAULT\Control Panel\Keyboard

    Tip: You can access any desired Registry key with one click.
    If you do not have this Registry key, then just create it.

  3. Find the string value called "InitialKeyboardIndicators". In Windows 7, set its value data to 2. In Windows 8 and above, set its value to 80000002. A note for Windows 10 users: if your Windows 10 does not save the state of NumLock after the reboot, try to set the value "InitialKeyboardIndicators" to 2147483650. This will turn on NumLock on the logon screen starting from the next boot.enable numlock Windows 10

Bonus tip:Using the InitialKeyboardIndicators parameter, it is possible to control other keys besides NumLock. See the table for its possible values for Windows 7:

InitialKeyboardIndicators value Purpose
0 Turn all indicators off (NumLock, CapsLock, ScrollLock)
1 Turn CapsLock on
2 Turn NumLock on
3 Turn CapsLock and NumLock on
4 Turn ScrollLock on
5 Turn CapsLock and ScrollLock on
6 Turn NumLock and ScrollLock on
7 Turn all indicators on (NumLock, CapsLock, ScrollLock)

For Windows 8 and above you should try to use values like 80000000,80000001,80000002, i.e. add 80000000 to Windows 7 value.