There are three levels for such settings in the registry and you need to set InitialKeyboardIndicators value to 2 under all next keys:
- settings in
HKEY_USERS\.Default alias HKEY_USERS\S-1-5-18 are used by programs and services that run as Local System (as S-1-5-18 is the security identifier for the Local System account). Important for logon screen/dialog as winlogon.exe runs under SYSTEM account.
- settings in
HKEY_CURRENT_USER are valid for currently logged user.
- (facultative) settings in
HKEY_USERS\Default are the basis for new user profiles (not loaded most of the time; the hive loadable manually from C:\Users\Default\NTUSER.DAT).
For instance, next settings should work as expected:
==> reg query "HKU\.DEFAULT\Control Panel\Keyboard" /V InitialKeyboardIndicators
HKEY_USERS\.DEFAULT\Control Panel\Keyboard
InitialKeyboardIndicators REG_SZ 2
==> reg query "HKU\DEFAULT\Control Panel\Keyboard" /V InitialKeyboardIndicators
HKEY_USERS\DEFAULT\Control Panel\Keyboard
InitialKeyboardIndicators REG_SZ 2
==> reg query "HKCU\Control Panel\Keyboard" /V InitialKeyboardIndicators
HKEY_CURRENT_USER\Control Panel\Keyboard
InitialKeyboardIndicators REG_SZ 2
==>
FYI, 2147483648 = 2^31 = hexadecimal 0x80000000 (it sets the highest weight bit on in 32-bit integer arithmetic) seems to be a default value since Windows 2000 times, maybe erst. Some estimate that this value means do not override current LOCK status. However, I have experienced another behaviour and therefore keep switching to above settings.
See also CEPtor's post on July 1, 2010 at answers.microsoft.com:
It is important to use the find function to locate ALL keyboard keys
for InitialKeyboardIndicators and set them to the same value
setting. The value options are as follows:
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)
Warning: change only numeric InitialKeyboardIndicators values; keep those under HKEY_LOCAL_MACHINE referring to something like USR:Control Panel\Keyboard