手元のMacから、AWS(Amazon Web Services)上にあるWindows Server 2019マシンに接続したときに、キーボード配列が変になることがあります。対応方法を記します。
前提条件
私は普段はMacを使っているのですが、個人的にAWS上にWindows Server 2019のマシンを走らせており、プログラミングなどの目的でリモートデスクトップでログインすることがあります。しかし、(もしかしたら何か設定があるのかもしれませんが)AWS上でWindowsマシンのインスタンスを作成すると英語版のWindowsになるため、表示言語だけではなくキーボードの設定なども英語になってしまいます。
この場合、キーボード配列も一般的な日本語配列ではなく英語配列のものとして認識されてしまうため、日本向けMacのキーボードと異なった文字が入力されてしまいます(アスタリスク(*)を打とうとすると、ダブルクオーテーションマーク(")が入力されるなど)。このままだと不便で仕方がないので、何とかしてキーボードの配列を日本語キーボードと同じものにします。
- 手元のマシン:macOS 10.15 (Catalina) 日本語
- 接続先のマシン:AWS上にあるWindows Server 2019 英語版
- 接続に使うソフトウェア:Microsoft Remote Desktop 10
実際に行った方法
どれが一番クリティカルなのかははっきりとしないのですが、行った設定変更を記します。
日本語入力を有効に
初期設定だと入力に使う言語が英語しか無いため、日本語を受け付けることから始めます。Advanced keyboard settingsの画面でinput methodをJapaneseにするなどしてください(他にも何かいじったはず)。
レジストリを変更してレイアウトファイルを変更
こちらのサイトには、レジストリを変更してキーボードレイヤードドライバを変える方法が記されています。
ただ、私の場合はこれを修正して再起動しただけでは、US配列から日本語配列に変わることはありませんでした。
どうやら、コンソール接続の場合は上記のレジストリを変更することで問題が解消するようなのですが、リモートデスクトップの場合は異なるレジストリを変更する必要があるようです。
具体的には、
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00000411
のLayout FileをKBDJPN.DLLからkbd106.dllに修正する必要があるようです。CurrentControlSetより後の部分が異なることにご注意ください。変更したら接続先のマシンを再起動しましょう。
終わりに
今回は、レジストリを変更することで対応できました。いろいろなサイトを見ていると、他にも「日本語入力をONにした状態でリモートデスクトップ接続を行う」「Microsoft Remote DesktopではなくParallels Clientを使う」などの情報もありましたが、これらは(少なくとも私の環境では)意味がありませんでした。
なお、レジストリを下手に変更すると、最悪の場合はマシンが起動しなくなります。レジストリを変更する場合は十分注意してください。