hack のためのネタ帳, etc,,,

状況

リモートデスクトップ(rdp) で Windows Server 2016 に繋ぐと、keymap が jp106 ではなく us になっている。
タスクトレイの言語アイコンからは、
  • (J) 日本語 Microsoft IME
  • ENG 英語(米国) US キーボード

が選べるがどちらを選んでも us keymap になっており
「⚙ 言語設定」を開いてみると、以下のような状態。
  • 「国または地域」は「日本」
  • 「言語」は「日本語」のみ登録されている

原因

rdp jp106 keyboard」でググると以下のページを見つけた。
以下にある既知の問題らしい。
原因は、コンソールだと
REG QUERY HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\i8042prt\Parameters /v "LayerDriver JPN"
の kbd106.dll が使われるが、
RDP だと
REG QUERY "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00000411" /v "Layout File"
の KBDJPN.DLL が使われてて、
なぜかこれが、名前とは裏腹に us keymap なんだとか。
なので、これを kbd106.dll に差し替えとけとの事。

UWP 限定の問題みたいに書いてあるけど、notepad をはじめとして片っ端から us keymap なので通常の win32 アプリ全般の問題として発生してるって点はうちも同じ。

解法

admin 権限の PowerShell から以下の操作をしたら jp106 になった。
REG EXPORT "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00000411" "keyboard.orig.reg"
REG ADD    "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00000411" /v "Layout File" /d "kbd106.dll"

コメントをかく


「http://」を含む投稿は禁止されています。

利用規約をご確認のうえご記入下さい

Wiki内検索

フリーエリア

管理人/副管理人のみ編集できます