PC起動時にNumLockを強制的にONにしたい
起動時のNum Lockキーが無効になっているテンキー付きのWindowsパソコンでログオンパスワードを入力しようとするとき、いつもNum Lockをオンにすることを忘れていて、テンキーで入力したつもりが入力されていなかったことに気づいたとき、イラっとすることがあります。
そんなときにあらかじめBIOS(UEFI)で起動時のNum Lock有効をオンにすればいいのですが、最近のパソコンの中にはBIOS(UEFI)のメニューに起動時のNumLockの有効/無効の設定項目自体が存在していないものもあります。そんなときは「あきらめるしかないのか?」とモヤモヤします。そこで、「いちいちNum Lockボタンを押さなくてもいいように何かいい方法がないかな~」と探したところ、レジストリの設定でNumLockをオンにする方法を見つけることができたのでメモ。
グループポリシーで設定する方法も探しましたが見つからなかったので、どうやら存在していないようです。
設定変更するレジストリの場所
Windows10/8.1/8/7でレジストリの場所は共通のようです。Windows8だけは値に違いがあるようです。
- HKEY_USERS.DEFAULT\Control Panel\Keyboard
ここにあるInitialKeyboardIndicatorsの値を変更します。変更後に再起動すると、ログオン画面の時点でNum Lockがオン(有効)になっているはずです。

Windows10/8.1の場合
変更前
`2147483648`
デフォルト
変更後
`2147483650`または`2`
NumLockオン
Windows8の場合
変更前
`2147483648`
デフォルト
変更後
`2147483650`または`80000002`
NumLockオン
※2でもNumLockが有効になるみたいです。
Windows7の場合
変更前
`2147483648`
デフォルト
変更後
`2`
NumLockオン
ログオン前とログオン後のレジストリの違い
ログオン前にNumLockをONにしておきたいとき
ログオン前のNum Lockオン設定はHKEY_USERS\.DEFAULT側のInitialKeyboardIndicatorsの値をいじればいいみたいです.
ログオン後にNumLockをONにしておきたいとき
ログオン後のNum Lockオン設定はHKEY_CURRENT_USER\Control Panel\KeyboardにあるInitialKeyboardIndicatorsをいじればいいようです。
ちなみに、HKEY_USERS\.DEFAULT側のInitialKeyboardIndicatorsの値は2147483648となっているのに対し、HKEY_CURRENT_USER\Control Panel\KeyboardのInitialKeyboardIndicatorsの値を見てみると2になっていました。

以下のページでは、HKEY_USERS\.DEFAULTとHKEY_CURRENT_USER\Control Panel\Keyboardの両方を設定しないとNumLockがオンにならないとありました。HKEY_USERS\.DEFAULT側のレジストリの変更だけで効果がなければ、HKEY_CURRENT_USER\Control Panel\Keyboardも設定してみてください。
それと、ログオンユーザー専用のHKEY_CURRENT_USERではなく、コンピューター全体に適用するHKEY_LOCAL_MACHINEで設定したらどうなるのか気になります。
一桁の値で設定するとBIOS側の設定に依存または優先?
本当かどうかわかりませんが、以下のページでは0(NumLockオフ)か2(NumLockオン)で値を設定した場合はレジストリ値よりもBIOS(UEFI)の設定が優先され、逆に2147483648か2147483650(NumLockオン)で値を設定した場合はBIOS(UEFI)の設定よりもレジストリ値が優先されるようです。
レジストリを登録するコマンド
以下のコマンドを管理者として起動したらコマンドプロンプトで実行すれば、簡単にNumLockキーをオンにするレジストリの登録ができます。
reg add "HKEY_USERS\.DEFAULT\Control Panel\Keyboard" /v InitialKeyboardIndicators /t REG_SZ /d 2147483650 /f
reg add "HKEY_CURRENT_USER\Control Panel\Keyboard" /v InitialKeyboardIndicators /t REG_SZ /d 2 /f
NumLockキー以外にCapsLockキーとScrollLockキーもオンにしたいとき
以下のページではInitialKeyboardIndicatorsの値によってはNumLock以外にCapsLock、ScrollLockもオンにすることができるようです。
オンにするキー
InitialKeyboardIndicatorsの値(10進数)
オフ
`2147483648`または`0`
CapsLock
`2147483649`または`1`
NumLock
`2147483650`または`2`
CapsLock+NumLock
`2147483651`または`3`
ScrollLock
`2147483652`または`4`
CapsLock+ScrollLock
`2147483653`または`5`
NumLock+ScrollLock
`2147483654`または`6`
CapsLock+NumLock+ScrollLock
`2147483655`または`7`
試しに10進数を2進数、8進数、16進数にしてみた
InitialKeyboardIndicatorsの値を10進数から2進数、8進数、16進数に変換してみたところ、興味深い数値になりました。8進数と16進数の下一桁が0~7になっていました。またWindows8でNumLockをオンにする80000002が16進数の欄にありました。
2進数
8進数
10進数
16進数
10000000000000000000000000000000
20000000000
2147483648
80000000
10000000000000000000000000000001
20000000001
2147483649
80000001
10000000000000000000000000000010
20000000002
2147483650
80000002
10000000000000000000000000000011
20000000003
2147483651
80000003
10000000000000000000000000000100
20000000004
2147483652
80000004
10000000000000000000000000000101
20000000005
2147483653
80000005
10000000000000000000000000000110
20000000006
2147483654
80000006
10000000000000000000000000000111
20000000007
2147483655
80000007
更に興味深いのは2進数の下3桁で、下1桁目がCaps Lockで、下2桁目がNum Lockで、下3桁目がScroll Lockとなっているようです。オンにするキーに該当する桁を1にした場合の2進数を10進数に変換すると0~7になります。