RDPでキーボードがJISではなくUSになってしまう問題
create: 2019-5-9
RDP Windows

RDP 接続すると US キーレイアウトになってしまう!

日本語キーボードを使っているのに、RDP 先で英語キーボードとして認識されてしまうことがあります。
この問題、地味に嫌ですよね。。。

公式の解決方法を探す

作業はホスト側(リモートマシン)で行います。

https://blogs.technet.microsoft.com/askcorejp/2018/06/08/rs4-rdp-keyboardlayout/
にある「回避策 2.」を実行すると良いです。

記事には「UWP アプリへの入力時のみ」となっていますが、全アプリで発生しました。
全アプリ UWP なのかな?

レジストリを直接書き換える方法

レジストリエディタを開き、直接 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00000411KBDJPN.DLL から kbd106.dll に書き換え、再起動するだけで良いです。

レジストリ操作用ファイルを使う方法

なお対応後も Windows アップデートなどで、設定が戻ってしまうことがちょいちょいあります。
毎度レジストリキーを探して編集するのも面倒なので、操作を自動化するために.regファイルを作成します。

手順 1 レジストリをいじるファイルを作成

.regファイルはレジストリ設定を保存しておくものです。
適当に rdp-jp.reg というレジストリ変更用のBOM付きUnicodeファイルを作成し、下記のコードを貼り付けてください。

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00000411]
"Layout Display Name"=hex(2):40,00,25,00,53,00,79,00,73,00,74,00,65,00,6d,00,\
  52,00,6f,00,6f,00,74,00,25,00,5c,00,73,00,79,00,73,00,74,00,65,00,6d,00,33,\
  00,32,00,5c,00,69,00,6e,00,70,00,75,00,74,00,2e,00,64,00,6c,00,6c,00,2c,00,\
  2d,00,35,00,30,00,36,00,31,00,00,00
"Layout File"="kbd106.dll"
"Layout Text"="Japanese"

貼り付けたらファイルを保存してください。

自分で.reg ファイルを作成する場合

見知らぬ人が作成した.regコードなんて信用できるか!という慎重な方は、自分で書き出すことも出来ます。
対象のキーを選択した状態でレジストリエディタから「ファイル」→「エクスポート」とします。
Layout File の箇所を kbd106.dll に書き換えてください。

手順 2 レジストリの書き換えと OS 再起動

  • ファイルをダブルクリック
  • 管理者権限が求められるので承認
  • Windows を再起動

以上で有効になります。Mac からの接続も問題なく JIS キーとして認識されました。
やったね!