Windows10のリモートデスクトップのキーボード配置が変わった→これはWin10のバグ? とりあえず、暫定回避できました。→根本対処もできた??いやまだだめ,さらに暫定回避策

Windowsのバージョンアップで変わった?

Windows10のバージョンやOSビルド番号の確認方法はリンク先のサイトなどで確認してください。
Windows10はバージョンアップで、期待しない変更がときどきおこりますが、最近の変更では、使えなくなっていた機能が復活したものもありますが、期待しない動きをしているものもあります。

■対象バージョン
ローカル環境Win10;      バージョン1903 (OSビルド 18362.267)
リモートデスクトップ環境Win10;バージョン1809 (OSビルド17763.615)
リモートデスクトップ; バージョン10.1.1098.1000

■ 使えなくなっていた機能が復活したもの
 Windows8からWindows10にバージョンアップしたときは機能していたデバイスキャストの機能ですが、気が付かないうちに機能しなくなっていました。先日(2019年8月初旬?)のバージョンアップを契機にデバイスキャストの機能が復活したようです。
下のように、エクスプローラーで動画ファイルを右クリックして「デバイスキャスト」をポイントすると(多少時間がかかりますが)キャスト先のハードウェア下の場合はテレビが選択肢に現れます。テレビを選択すると動画をキャストできます。

■期待しない動き
対象の組み合わせで利用したときに、ローカルマシン上では、キーボードの配列を正しく認識しているが、リモートデスクトップ上のマシンでは異なるキーボード配列として認識されている状態に変わりました。きっかけが何かははっきりしませんが( 2019年8月11日の夜から12日 の間に発生)、Windows10のバージョンアップではないかと推測しています。タイミング的には、Windows10のバージョンアップによりリモートデスクトップの実装が変わったことと一致しています。以前は昔ながらのリモートデスクトップの画面でしたが、現在は下のようにWin10らしいアイコンに変わり、操作性もWin10のアプリケーションらしく変わっています。その辺は良いのですが問題はキーボード配置です。

”[”を入力したつもりなのに”@”だったり、”「”のつもりが”‘”だったり、主にアルファベットキーの右側のキー配列が変わっていました。これは”Microsoft Japan Windows Technology Support Windows 10 RS4 へのリモート デスクトップ接続時に、UWP アプリへの入力時のみキーボード配列が異なる事象について”とはとは事象が違うようです。 [Shift] + [2] キーを押した場合、Chrome上では ” (ダブルクォーテーション) が入力されます。この部分は正常だがアルファベットキーの右側部分たとえば、Lの右側は本来 ; (セミコロン)ですが、^ が入力されます。
ただこのページにヒントがあるような気がします。リモートデスクトップをウインドウ表示にして、キー入力モードを確認してみました。

上は、ローカルマシン上のエディタを操作しているときの画面で、IMEが有効な状態です。ここからリモートデスクトップを操作すると下のように、ローカルマシン側のIMEが無効状態に変わります。これが原因かどうかわかりませんが、確認中です。

■解決編(回避策)→下のほうも参照 8/15この回避策も使えなくなった
キーボード配列の認識状態は。MOOVOOサイトの確認方法ではローカル、リモートともにどちらも同じ”日本語キーボード(106/109キー)”です。この状況から問題は接続元の”リモートデスクトップ”と推測しています。と思ったらやっぱり、これまで使っていた”リモートデスクトップ接続”の実装は残っていました。

下のメニューからWindowsアクセサリ→”リモートデスクトップ接続”をクリックすると昔ながらのインターフェイスでリモートデスクトップ接続できます。この手順で接続するとリモートデスクトップのアイコンは上の緑のように昔ながらのアイコンで接続できます。これにより、キーボード配列も期待通りの動作ができます。

★この挙動からすると、Win10の新実装のバグというか、去年も発生した問題に類似していて、上で指摘したようにIMEの認識が絡んでいるように思われます。古い実装のリモートデスクトップにポイントすると下のようにIMEの部分が隠蔽されます。見ようとし”^”をクリックするとローカル側にフォーカスが当たるのでリモートデスクトップにフォーカスがある時にローカル側がどのような状態になっているかはわかりません。しかし、明らかに動きが違うので、ここが問題事象に絡んでいるのは間違いなさそうです。

お盆の時期なので、MSの調査や対処もとまっているかも、アメリカはお盆内から動いてうごいてほしいが…。 セキュリティパッチなら仕方がないが、この時期に機能変更のパッチを出さないでほしい。ま、とりあえず古い実装で回避できたので何とかなりますが、早く新しい実装を修正してほしい。そして、このままの状態で古い実装を消すなんてことをしないでほしい。

■根本対処も完了??(2019/8/14夜時点)
 Windowsがまた更新されました。下のとおり、リモート側のWinodws10が更新されていました。ローカル側は変更ありません。この環境でキーモード配列の問題は解消していました。

更新前;
リモートデスクトップ環境Win10;バージョン1809 (OSビルド17763.615)
    ↓
更新後;
リモートデスクトップ環境Win10;バージョン1809 (OSビルド17763.678)  

■またダメになった。今度は回避策も効かない(2019/8/15 10:00ころ)
2019/8/14夜時点
ローカル環境Win10;      バージョン1903 (OSビルド 18362.267)
リモートデスクトップ環境Win10;バージョン1809 (OSビルド17763.678)
リモートデスクトップ; バージョン10.1.1098.1000
  ↓
2019/8/15 10:20ころ
ローカル環境Win10;      バージョン1903 (OSビルド 18362.295)
リモートデスクトップ環境Win10;バージョン1809 (OSビルド17763.678)
リモートデスクトップ; バージョン10.1.1098.1000


酷すぎます。なんてことをしてくれるんでしょう。もっとちゃんとテストしてから修正パッチをリリースしてほしい。
今度は、2018/9と同じ症状に見えます。 2+shiftでダブルクオーテーションになるべきところ@アットマークになるパターンで、キー配列が入れ変わっています。 この挙動は新しいリモートデスククトップ、古いリモートデスクトップの両方で発生します。今のところ回避策ない。。。 私の場合、左に置いてあるiPadの英語キーボードを見ながら脳内キー変換するしかなさそうだが、めちゃくちゃ効率が悪い。何とかならないか?
面倒ですが、なんとか回避策を確認できました。 ”Microsoft Japan Windows Technology Support Windows 10 RS4 へのリモート デスクトップ接続時に、UWP アプリへの入力時のみキーボード配列が異なる事象について” に記載がある「レジストリの値を “KBDJPN.DLL” から “kbd106.dll” に変更 」して、なおかつ古いリモートデスクトップの実装を使用することで回避できました。 
 

インストールせずにLinuxを使うならUSBメモリは USB3.xで

LinuxでWiFiのホットスポットの機能を検証するためにインストールすることなく利用できるLinuxを構築してみました。
※下の手順より簡単な方法を → こちらに記載しました

前提条件
 ターゲットマシン:Intel Core i7-2600
NVIDA GeForce GTX560だが障害あり。Winでは640×480のモードかリモートデスクトップでの利用で運用回避中
おもにWin10で利用しておりインストールはしたくない。

  別のマシン:Intel Core i7-8700など2台のマシン
ネットワーク:有線LANあり
Linux:2019/7/30時点で最新(Ubuntu19.4を使用)

参考情報
 Linux環境構築にあたり、つぎのサイトの情報を参考にさせていただきました。
LinuxをUSBメモリへインストールする

ターゲットのマシンではなく正常に動作するPCでUSBメモリにLinux環境を構築します。上のサイトに書かれている作業でほぼ実現できます。ただ Ubuntuのバージョンが上がっているので、すこし異なる手順のところはありました。今思えば、より簡単に変わっているイメージですが、上のサイトの記載に引っ張られてすこしいらないことをした感触はあります。その辺の手順は差っ引いて、以下に、上のサイトと異なるポイントを書いておきます。

1)「USBメモリ上にパーティションを作成」のところで、「ラベルはcasper-rwとします」とありますが、persistenceにします。 最悪は、何も名前を付けなくてもUbuntuが起動時に勝手に適当な名前を付けてマウントしてくれます。そのあとUbuntuからExt4のパーティションラベル名を変えることも可能です。
2)パーティション作成は最初UbuntuをUSBで起動してUbuntuのインストールの際に動くパーティション分割で構成しました。これでも十分に分割は可能です。しかし、一度分割したものの再構成し直すなど痒いところがどうしても実行できませんでした。そこで MiniTool Partition Wizard  を利用して対処しました。このパーティション作成については別ページで紹介しています。また、EaseUS Partition Masterを使う例も紹介しています。
3)「 Persistent fileのサイズは0に設定します。 」これはやりません。取れるだけ確保します。このため、第1パーティションは少し大きめに設定しておきます。もちろん第2パーティションも1)に書いたように Persistent storage に自動的に割り当てられます。
4)上のようにUbuntuの仕様変更?の影響もあって、「パーティションをPersistent storageとして割り当てる」のところの作業は不要です。

ここまでで、正常に動作するPCではUSB でLinuxを起動できるようになります。
これに加えて、最初の課題の”ディスプレイアダプタ問題”の回避をします。そのためにはグラフィックを使用しないように設定変更します。

\boot\grub\grub.cfg を編集します
既存の menuentryをコピーしてメニュー名を “Try Ubuntu without installing with TEXT” などに変更します
boot=casper xxxの部分を、”boot=casper text nomodeset —”に変更します

この変更により、上の写真のように起動時にテキストで起動ログが表示されるように変わりますが、起動し終わるとGUIが起動します。そこで、Ubuntuが起動した後、terminalなどを使ってつぎのコマンドでCUIモードに切り替えます。
sudo systemctl set-default multi-user.target
これにより、CUIで起動できます。
 ※記載しているサイトが見当たりませんでした。デフォルトのubuntu アカウント のパスワードは””つまりエンターのみ。sshからは空文字をうけつけないなどリモートからログIDでのログインが面倒です。別途アカウントを作ってsudoグループに追加して使用します。ここまでで、Linuxを利用するベースの環境ができました。

64GB USB2.0仕様と 32GB USB3.0仕様の2種類のUSBメモリを使用して起動確認を行いました。それぞれの起動、停止時間は次の通りでした。

   USB2.0USB3.0
起動からログイン画面まで4分45秒50秒
起動パスワード入力後、ログイン完了まで5分1秒
シャットダウンから電源が切れるまで5分50秒20秒

表中の「ログイン画面」は上の画面です。

上表の「 ログイン完了 」とは上の画面の状態です。


上記のようにUSB2.0でも動作はしますが、かなり処理速度が遅いのでちょっと使いづらい。USB3.0は比較的早い、もう少し早いほうが良いのですが…。今なら、USB3.0以上を使うしかないでしょう。

さて本題の障害のあるPCで確認します。このPCはWindows10が何と起動して、利用することができるが、起動時のロゴやデスクトップのアイコンが崩れて見えるとうレベルの壊れ具合です。以前は2画面使えていましたが、HDMIでつないだディスプレイには表示できず、古いディスプレイBL-191A-Bで表示が崩れながら使うか、リモートデスクトップで別マシンから使うかしています。リモートデスクトップの場合はディスプレイアダプタを使わないので障害の影響を受けにくいのでしょう。

上の写真をよく見ると、微妙な濃淡ですが妙な横線が何本もあるのが見えます。こんな感じで微妙な壊れ方をしています。


このマシンでUSB Linuxを起動してみました。

普通に起動できたかと思い蒔いたが、一切動きません。 キーボードを認識していない のかユーザー名を入力できません。最後の確認としてキーボードのUSB端子を抜き差ししてみました。すると、次のようにメッセージがでました。

”usb 3-1.3: device not accepting…” USBになにか差し込まれたことを認識はしたが、デバイスを受け付けていません。

テキスト起動であればグラフィックに多少の問題があっても使えると考えていたのですが、上の状態となりだめでした。残念、この状況からLinuxはまだまだハード障害に弱いと感じましたというか、Windowsがこの状況に耐えているのがすごいという感じでしょう。

とりあえず、正常に動くPCで、検証進めます。