2023/07/17

リモートデスクトップ で左右の画面が逆になる件

ずっと困っていた問題が概ね解決したっぽい感じなのでメモを残しておきます。

困った現象:

モニタを2画面横に並べた環境から、リモートPCにリモートデスクトップで接続した状態で、ローカル側がスリープしてから復帰した後、リモートデスクトップのウィンドウを最大化すると、リモートデスクトップ内のウィンドウが左右逆に配置される(ことがある)。

要するに、2つあるモニタに表示される内容が左右でそっくり入れ替わってしまう、ということ。それが2つのモニタにまたがった1つのリモートデスクトップのウィンドウ内で起きる。これが毎回ではなくたまに起きるというのが余計にややこしい。決まった回数ごととかでもなくランダムで、たぶん数十回に1回ぐらいの割合だと思う。ちなみにOSはローカルもリモートもWindows10の22H2。

わかっているのは、リモートデスクトップのウィンドウを最大化したタイミングで発生する、ということ。どうもそのときにOSのおせっかい機能(?)でウィンドウを並べ替えてくれやがるらしい。多分(よかれと思って?)ローカル側のモニタの状態に合わせようとしてリモート側で行われているはず。ということは最大化しなければ現象は起きないけど、ウィンドウ枠とかが微妙にもったいないし最大化しているかどうかで若干動作が違う部分もあったりするので、やっぱり最大化してないと使い勝手が悪い。ならずっと最大化したままにしておけば...というのもできない。後述のスリープでウィンドウの最大化が解除されてしまうのだ。

もう一つわかっているのは、スリープしてから復帰した場合、という条件がつくこと。いやもう当然設定はしてるんです。とにかく徹底的にスリープしないような設定にしてるはずなのに、どうしても1時間ぐらい経つと勝手にスリープしている様子。モニタの設定が関係してるのかと思って調べてみたけど、モニタ側にもそういう設定はない。(入力信号がなくなったらモニタもスリープするけど、それって先にPC側がスリープしている状況だし。)

いろいろあって結局わかったのが、そもそもWindowsの設定でスリープしないようにしておいても、それでもスリープすることがある(?!)らしい、ということ。ていうか何その仕様。。それをさせないようにする方法もあるけど普通に設定画面からいじれるものではないらしい。

おそらくもっと簡単で安全な方法として、powertoysのAwake機能を使ってスリープを阻止できるそうなので、それを使ってみることにした。これは普通に画面から設定できる。「無期限に起動したままにする」を選択すればいいようだ。これでスリープしなくなれば例の問題も起きないことになる、はず。

これまでもいろいろな対策を試してきたけど、その効果(がなかったこと)を確認するにはとても長い時間がかかっていた。しばらく放置してないとスリープに入らないし、そこまで行ったとしても問題の現象が出るかどうかはランダムで確率はけっこう低い。なのでこの対策も本当に効果があるといえるかを確認するにはけっこう時間がかかりそう。(もしもだめだったら追記するので、それがなければ大丈夫と思ってください。)

0 件のコメント: