アルメモ

アルフレートのアレやコレやメモ

Windowsのリモートデスクトップでマルチディスプレイするときにリモート先のメインディスプレイを変更する方法

こちら側のサブディスプレイをリモート側ではメインディスプレイにしたいんですよ。

リモートデスクトップ使ってますか!

別のWindowsのデスクトップを手元のPCやスマホとかで操作する機能、リモートデスクトップ使ってますか!

ぼくはゴリゴリに使ってます。

お仕事環境は個別の仮想PCだからリモートデスクトップで見るし、家ではノートPCでも画面広く使いたいからリモートデスクトップで見るし、クラウドに置いてアレやコレやしてるサーバーでもCUIじゃなくGUIで操作したいからリモートデスクトップするし、固定IPアドレスISP契約してVPNルーター設置して家庭内のLANとは別のネットワーク組んでPCにNIC足して外から自分のPCにリモートデスクトップできるようにしたくらいに使ってます。

support.microsoft.com

マルチディスプレイ環境でリモートデスクトップ使ってますか!

Windowsリモートデスクトップ接続はマルチディスプレイに対応。

マルチディスプレイ環境の場合、オプション設定を表示して「画面」タブの「リモートセッションですべてのモニターを使用する」にチェックを入れれば使える。

ぼくはUWQHDモニタとWQHDモニタのデュアルなので、この設定を有効にすることでリモート接続でも広いデスクトップが使えて満足なわけです。

メインディスプレイ設定とは

簡単に言えば通知が出たりタスクトレイが表示されたりする方。

ディスプレイ座標はメインディスプレイの左上隅が起点(0,0)になる。

ぼくのマルチディスプレイ環境はこう。

左側にUWQHDモニタ、右側にWQHDモニタを並べ、右側をメインディスプレイにしてる(番号はグラボのポート順らしいので特に意味はない)。

こうすると左側でFF14やってるときに右側で作業するのに便利なんですよ。

タスクトレイのCrystalDiskInfoのディスク温度アイコンもすぐ見られる。

先日大風量冷却システムを稼働させたんでそんなに心配する必要は無くなったのだけども。

DQXやウルトラワイドに対応していないゲームは右側でやるんで、その時は左側をメインディスプレイに設定することもあるけど終われば戻す。

メインディスプレイ同じになっちゃう問題

リモートデスクトップ接続でマルチディスプレイすると、リモート側のディスプレイもこちら側と同じになっちゃうんですよ。

PowerShell叩いてリモート先でスクリーン情報を出してみると、メインディスプレイ(Primary)がWQHD側になっているのが分かる。

Add-Type -AssemblyName System.Windows.Forms
[System.Windows.Forms.Screen]::AllScreens

が、これでは困る。

リモートしてるときはWQHDモニタ側で画面共有すること多いんですね。

これは、相手側は大半が16:9環境でウルトラワイド画面を共有するとうまく収まらずに表示が小さくなっちゃうので同じ比率のWQHDのほうが良いからなんです。

画面共有するときタスクバーは邪魔だから非表示にしたいし、余計な通知が見えると嫌だからメインディスプレイではやりたくないしで、様々な点でもサブディスプレイである方が都合良いんです。

じゃあリモート接続先で切り替えればいいじゃんと思うかもですが、できないんです。

リモート接続時はディスプレイ設定にディスプレイ構成すら表示されない。

ならリモートデスクトップする前にメインディスプレイを切り替えればいいんですが、いちいちめんどい。

なんかうまい方法あるかなと。

リモートデスクトップ接続の設定を直接書き換えてメインディスプレイを書き換えてしまおう

ようやく本題。

リモートデスクトップ接続でオプション表示を展開すると、接続設定をファイルにして保存できるボタンが出てくるんです。

これで保存したRDPファイルには設定項目がテキストで並んでいてメモ帳とかで編集できるんですが、その設定項目の説明がこれ。

learn.microsoft.com

この中の「selectedmonitors」はマルチディスプレイ接続時に使用するディスプレイを設定する項目で、ディスプレイが3つ以上あるときに隣接する2つだけ使うとか設定するのに使えるのですが、同時にメインモニタの設定もできるんです。

そのためにはまずディスプレイのIDを取る必要がある。

説明にもあるようにこのコマンドで取得。

mstsc.exe /l

ぼくの環境ではこう。

UWQHD側が0、WQHD側が1と。

説明によると最初に書いたIDがメインディスプレイ(Primary)になるので0→1の順番で書けばOKのはず。

selectedmonitors:s:0,1

これをRDPファイルの末尾に追記して保存して閉じる。

ちなみにマルチディスプレイ環境を使用することを宣言する「use multimon」設定が必要なので注意。

use multimon:i:1

これはGUI設定で「リモートセッションですべてのモニターを使用する」にチェックを入れていれば書き込まれているはず。なければ併せて追記しておく。

改めてリモートデスクトップ接続するとメインディスプレイ(Primary)が切り替わってるはず。

これでいちいち接続前に切り替えなくても良くなりました。

これ以外にもGUIから設定できない項目が色々あるのでうまいこと使ってみると便利かもです。

まとめ

リモートデスクトップ接続先のメインディスプレイをこちら側と別に設定したいときはRDPファイルに「selectedmonitors」を書き込んで設定しよう!

分かってしまえば簡単な話でした。

 

アイキャッチ画像はスキマナースから使わせていただきました。

nurse-web.jp