最近業務でMacbook Proをメインで使い始めたのですが、デスクトップのWindows機も保持しており、Macからのリモートデスクトップで使用する構想でした。
しかし、いざリモートデスクトップ接続してみるとキーボードがUS配列として認識されてしまいました。(MacはJIS配列)
調べてみると昔からある現象のようで、Qiitaでもいくつかの記事がヒットします。
上記で紹介されているレジストリ変更や、クライアントの変更などの対処方法を実施してみたのですが、改善されず ![]()
さらに調べていくと公式で説明があったので、共有します。
環境
今回の環境は以下の通りです。
- macOS Mojave 10.14.6
- Windows 10 Pro 1903 (OS ビルド 18362.418)
- Microsoft Remote Desktop 10.3.3(1667)
公式の回答
以下、 Windows 10 RS4 へのリモート デスクトップ接続時に、UWP アプリへの入力時のみキーボード配列が異なる事象について からの引用です。1
原因
コンソール接続の場合は、以下のレジストリにあるキーボードレイアウトkbd106.dllが利用されます。
パス: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\i8042prt\Parameters
名前: LayerDriver JPN
しかしながら、リモートデスクトップ接続の場合は、以下のレジストリにあるキーボードレイアウトKBDJPN.DLLが利用されてしまい、kbd106.dllとは異なるキーボード配列となります。(KBDJPN.DLLは現状英字配列を元としたレイアウトとなっています。)
パス: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00000411
名前: Layout File
回避策
先述の通り、本事象の原因は、HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00000411からKBDJPN.DLLが読み込まれることが原因でございます。
そのため、このレジストリで指定されているキーボードレイアウトを別の値kbd106.dllに変更することで、事象を回避することができます。
なお、このレジストリを用いて本来のKBDJPN.DLLを利用している環境にも影響がありますので、ご注意ください。
- リモート デスクトップ接続先コンピューター (Windows 10 RS4) に管理者権限のあるユーザーでログオンします。
- Win + R キーを押し、[ファイル名を指定して実行] にて、
regeditと入力し、[OK] をクリックします。 - [レジストリ エディター] にて、以下のパスを展開します。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00000411 - 上記パス内にある
Layout Fileの値をKBDJPN.DLLからkbd106.dllに変更します。 - OS を再起動します。
-
記事内では
September 20, 2018—KB4458469 (OS Build 17134.319)にて修正されたとのことですが、1903でも再現しました。 ↩

