指定するディスプレイだけをリモート画面に表示させる方法

## はじめに
今回、リモートデスクトップの画面表示について不満だった点を解消できたので、備忘録もかねて記事にしました。

## 2025/4/17　追記
リモート接続先の会社PCがWin11に更新されたのが契機か、Windowsアップデートが契機かわかりませんが、「screen mode id:i:」が"1"でないと自分の環境では今まで通り指定画面だけをリモート接続表示できなくなっていました。

もし以下の設定を行っても1画面でしかリモート接続表示できない場合は、「screen mode id:i:」を1にすると直るかもしれません。

## 私が今回改善したかった問題について

![image-20201204082029746.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1062357/9a257228-18f8-473f-2835-a8e10b6bda36.png)

私の環境では上記の画像のように3台のディスプレイを使って作業しています。

### 問題点その1：リモートする画面を選べない
作業しやすい1番のディスプレイでリモートしたいのですが、
私のメインディスプレイの設定は 2番としており、単純にリモート接続を行おうとすると
一番右に設置してある2番の画面でリモート画面が表示され
毎回画面をドラッグして移動させる必要がありました。


(メインディスプレイの設定を変えればいい話ですが通知類やインジケータは一番右に配置したく、あまり変更したくありませんでした)

### 問題点その2：全画面か1画面の極端な画面設定しかできない
会社PCからでしかアクセスできないファイル等を横に置いて作業したく複数のディスプレイをリモート画面にする場合、
全ディスプレイを使用する設定にするか、一画面を拡大する(タスクバー等が見えなくなるためやりたくない)
しか選ぶことができず、1台は自宅PCの画面を表示したいということができませんでした。

## 解決法
上記問題について「指定するディスプレイをリモート画面とする設定」で解決できたので紹介します。

### 事前準備
まず接続予定のRDPファイルを用意します。※PDPファイル：リモート接続の設定ファイルのこと
用意の仕方は普段リモート接続を行う画面から[オプションの表示] - [全般]タブから[名前を付けて保存]を選ぶことで作成できます。
![image-20201204091612329.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1062357/93552830-71bc-4618-5631-892f8a94ac7c.png)


次にディスプレイの番号を把握します。ディスプレイ設定の番号と違う場合があるため確認を推奨します。
コマンドプロンプトで "mstsc /l"と入力することでディスプレイ番号を把握することができます。
(解像度やディスプレイ位置から特定するか、後ほど説明する設定で実際に動かしながら把握します)
![image-20201204092907514.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1062357/bd986c26-5852-5a1d-1a28-80509ccf9a1f.png)
### 設定方法
用意したRDPファイルをtxtエディタで開きます。
開いたtxtに以下を追加、あるいは変更を加えてください。

※「screen mode id:i:」については、冒頭の追記参照

| パラメータ          | 説明                                                                                                                                                                                | 値                                                                                                                                                                                          | 設定する値                                               | 
| ------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------- | 
| screen mode id:i:   | 接続を起動したときに、リモート セッション ウィンドウが全画面表示されるかどうかを指定します。                                                                                        | - 1:リモート セッションはウィンドウで表示される<br>- 2:リモート セッションは全画面で表示される                                                                                              | 2                                                        | 
| use multimon:i:     | リモート セッションでローカル コンピューターからの 1 つまたは複数の表示を使用するかどうかを決定します。                                                                             | - 0:複数ディスプレイのサポートを有効にしない<br>- 1:複数ディスプレイのサポートを有効にする                                                                                                  | 1                                                        | 
| selectedmonitors:s: | リモート セッションから使用するローカル ディスプレイを指定します。 選択したディスプレイは隣接している必要があります。 use multimon を 1 に設定する必要があります。                  | マシン固有のディスプレイ ID のコンマ区切りのリスト。 ID を取得するには、mstsc.exe /l を呼び出します。 リストされている最初の ID は、セッションのプライマリ ディスプレイとして設定されます。 | 設定したいディスプレイ番号                      | 
| span monitors:i:    | この設定では、リモートデスクトップ接続（RDC）を使用してリモートコンピュータに接続したときに、リモートセッションウィンドウを複数のモニターにまたがって表示するかどうかを決定します。 | - 0:またがった表示を有効にしない<br>- 1:またがった表示を有効にする                                                                                                                          | お好み | 

selectedmonitorsについて私は1番と3番をリモート画面としたかったため、そのディスプレイ番号であった"1,2"を設定しました。わからない場合は適当に番号を設定して実際にリモート接続すれば何番がどのディスプレイかわかると思います。
上記の設定をしたRDPファイルをダブルクリックしてリモート接続を開始します。

#### 2025/4/17追記
コピペ用（パラメータの重複はないようにしてください。selectedmonitorsは各自の環境）
```
screen mode id:i:1
use multimon:i:1
span monitors:i:1
selectedmonitors:s:1,2
```

### 結果
ディスプレイ1番と3番でリモート画面が表示され、2番は自宅PCの画面が出力されます。

### 参考
https://docs.microsoft.com/ja-jp/windows-server/remote/remote-desktop-services/clients/rdp-files
https://www.vwnet.jp/Windows/w7/RDP/RDP-parameters.html