最近業務で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でも再現しました。 ↩