Windows 10 RS4 へのリモート デスクトップ接続時に、UWP アプリへの入力時のみキーボード配列が異なる事象について
みなさん、こんにちは。
Windows プラットフォーム サポートの今入です。
今回は、現在確認できている既知の問題について紹介いたします。
更新履歴
2018/6/8
本記事を公開いたしました。原因を調査中です。
2018/6/8
回避策を追記しました。
2018/6/21
事象の説明 及び 原因を追記しました。
2018/6/27
回避策を追記しました。
2018/8/27
解決方法を更新しました。
2018/9/21
修正プログラムが公開されました。
事象
日本語環境の Windows 10 RS4 (1803) へのリモート デスクトップ接続を行った際、UWP (ユニバーサル Windows プラットフォーム) アプリへの入力時に、キーボード配列が英字配列 (または 意図しない配列) になる事象が確認できております。また、IME がオフの状態の時のみ発生致します。
例えば、[Shift] + [2] キーを押した場合、Win32 アプリケーション (メモ帳など) では " (ダブルクォーテーション) が入力されますが、UWP アプリでは @ (アットマーク) が入力されます。(下図参照)
この事象は、UWP アプリに対して影響がございます。
例えば スタート メニューの検索 (Cortana) や Microsoft Edge, その他 独自に開発された UWP アプリでも発生致します。
また、Hyper-V 仮想マシンを "拡張セッション" で利用している場合でも、同様の事象が発生します。
これは、拡張セッションの機能が 内部でリモート デスクトップの技術を用いているためです。
原因
コンソール接続の場合は、以下のレジストリにあるキーボード レイアウト "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
解決方法
現在、リモート デスクトップ接続時に、異なるキーボード レイアウトが利用される点について、原因調査を行っております。
ご迷惑をおかけ致しますが、お待ちいただければ幸いです。本問題に対する修正が含まれた更新プログラムは、2018 年 9 月下旬に配信予定で対応を進めております。
本問題に対する修正プログラムが公開されました。
September 20, 2018—KB4458469 (OS Build 17134.319)
https://support.microsoft.com/ja-jp/help/4458469
--- 抜粋 ---
・ Addresses an issue that occurs when entering Japanese characters in a remote desktop session (mstsc.exe).
-----
上記更新プログラムを、接続先 Windows 10 RS4 (1803) にご適用頂くことで、本事象が改善します。
回避策 1.
本事象は、IME がオフの場合にのみ発生します。
そのため、UWP アプリにおいて、日本語配列を用いて半角記号を入力したい場合は、
IME をオンにしていただき記号を入力、その後 [F10] キーを押して半角記号に変換してください。
回避策 2.
先述の通り、本事象の原因は、HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00000411 から "KBDJPN.DLL" が読み込まれることが原因でございます。
そのため、このレジストリで指定されているキーボード レイアウトを別の値 ("kbd106.dll") に変更することで、事象を回避することができます。
なお、このレジストリを用いて 本来の KBDJPN.DLL を利用している環境にも影響がありますので、ご注意ください。
1. リモート デスクトップ接続先コンピューター (Windows 10 RS4) に管理者権限のあるユーザーでログオンします。
2. Win + R キーを押し、[ファイル名を指定して実行] にて、"regedit" と入力し、[OK] をクリックします。
3. [レジストリ エディター] にて、以下のパスを展開します。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00000411
4. 上記パス内にある "Layout File" の値を "KBDJPN.DLL" から "kbd106.dll" に変更します。
5. OS を再起動します。