Windows のリモートデスクトップ接続先の日本語入力で US 配列を使う
自分は、キーボード入力に US 配列を使っている。 大学以前は日本語配列を利用していたが、 大学のキーボードが US 配列だったため、 それ以降は自宅でも職場でも US 配列を利用している。
まれに人の環境の日本語配列キーボードを打つこともあるが、 そのときは「くっ!!」と思いながら打っている。 まぁ、そういう状況では記号などはあまり使わないし配列が違っても大抵なんとかなる。
先日、いつも利用しているリモートデスクトップで、 日本語入力時に日本語配列になってしまう現象が発生した。
いろいろと検索して、ようやく解決したので紹介する。
設定
次の 2 つのレジストリを設定する。
- HKEY_LOCAL_MACHINE§YSTEM\CurrentControlSet\Control\Terminal Server\KeyboardType Mapping\JPN
- HKEY_LOCAL_MACHINE§YSTEM\CurrentControlSet\Control\Keyboard Layouts\00000411
※レジストリを変更するので、あくまで自己責任で。
なんで 2 つ設定が必要なのかというと、次の通り。
- 前者が日本語の無変換入力時のキー配列に影響する
- 後者が日本語の変換入力時のキー配列に影響する
人によっては、片方だけでよいという人もいるかもしれない。
日本語の無変換入力時のキー配列
以下を参照。
<https://picomikan.net/remote-desktop-keyboard/>
詳しくは上記の URL を参照してもらうとして、ここでは最低限の設定を抜粋しておく。
リモート接続先 の PC で、
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\KeyboardType Mapping\JPN
上記のレジストリキーの次の項目を変更する。
-
名前
- 00000002
-
値
- kbd101.dll
日本語に戻す場合は kbd106.dll を設定。
日本語の変換入力時のキー配列
以下を参照。
<https://zenn.dev/eri_h/articles/e1842edfdaf33f>
詳しくは上記の URL を参照してもらうとして、ここでは最低限の設定を抜粋しておく。
リモート接続先 の PC で、
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00000411
上記のレジストリキーの次の項目を変更する。
-
名前
- Layout File
-
値
- kbd101.dll
日本語に戻す場合は KBDJPN.DLL を設定。
US 配列にするレジストリの値は kbd101.dll で同じだが、 日本語配列にするレジストリの値は異なるので 要注意 。
補足
この設定に辿り着く前に、ネットで見つけた設定をいくつか試してみたが、 それらは自分の環境では効果がなかった。
なお、この設定は個人設定ではなく、その PC 全体に影響する設定なので、 他の人と共有する様な PC では変更しない方が良い。
本来はこのような設定をしなくても、 リモート PC の設定に応じてキーボード配列が更新されるはずなのだが。。
実際この現象が発生する PC の組み合わせは限定されていた。 接続元 PC A, B、接続先 PC C, D の計 4 台の組み合わせで次のような状況だった。
-
A->C
- JP 配列
-
A->D
- US 配列
-
B->C
- US 配列
-
B->D
- US 配列
つまり、同じ C に接続しても、接続元 A と B とで現象が違っていた。
また、つい先日までは上記 A->C
のパターンでも、 US 配列になっていた。
なにが原因でこうなってしまったのかは不明。
ちなみに、 PC C をリモートではなく、
直接 PC C にローカルでログインして操作する場合は問題なく US 配列になる。
一つ心当たりがあるとすれば、 この現象が発生する前に PC C に PowerToys をインストールしていたことくらいだ。 PowerToys にはキー入れ替え機能があるので、 それが何らかの影響をしていたのではないかと考えた。 しかし、PowerToys をアンインストールしてみたが、 現象は改善されなかったので全く関係ないかもしれない。