Windows 8および8.1では、USB接続の日本語キーボードが101英語キーボードとして認識され、[半角・全角]キーが上手く作動しないなどの問題が発生する場合があります。

このページは、日本語キーボードが101英語キーボードと認識されてしまった場合の対処方法が記載してあります。
(ちなみにWindows Vista/7でも、同様の手順で解決可能です。)

参考情報
ちなみに私のPC環境では、Windows8 CPや、RTM版、Windows To Goの実機へのインストール、正式リリースされたWindows8をVMwareへインストールした際などでこの現象が発生しました。

対処方法1

Windows8のキーボードがおかしくなった場合でも、多分コレだけで直ると思う。直らない場合は下段にある「方法2」を試す。

コントロールパネル>[地域]
コントロールパネル>[時計、言語、および地域]>[言語]をクリック

キーボードの言語追加
[言語の追加]をクリックして[日本語]を追加する。

キーボードの言語追加
日本語を選び[追加]ボタンをクリック

Windows8のキーボード
[上へ]ボタンで、日本語を一番上に移動。
[英語]は削除する。
 (既に[日本語]になっている場合は、英語など他の言語を追加し、一旦[日本語]を削除し、再び日本語を追加してみる)

PCを再起動すれば問題は解決するはず。
この方法で解決しない場合は、以下の方法を試す。

対処方法2

レジストリを変更するので、注意しながら行う事。

Windows8で日本語キーボードが101英語キーボードと認識されてしまう問題
▲クリックで拡大
 1. デスクトップ左下隅で右クリック
 2. [ファイル名を指定して実行]を選択

regedit
 [regedit] と入力してOKをクリック

レジストリの変更
▲クリックで拡大
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\i8042prt\Parameters
を開き、以下のように変更する

名前修正前の値修正後の値
LayerDriver JPNkbd101.dllkbd106.dll
LayerDriver KORkbd101a.dll名前ごと削除(注意)
OverrideKeyboardIdentifierPCAT_101KEYPCAT_106KEY
OverrideKeyboardSubtype02
OverrideKeyboardType たぶん77

レジストリの変更
▲クリックで拡大
レジストリの名前の削除は、上図のように選択・右クリックから行う。
注意:
名前[LayerDriver KOR]は、削除・変更をしなくても日本語キーボードとして認識される場合も多い。最初はこの項目は変更せずに様子を見ること。
(うちのPC環境では[LayerDriver KOR]を削除しないと106日本語キーボードとして認識できなかった)

regeditを終了し、PCを再起動すれば完了です。

参考リンク

この件に関するMicrosoftの資料