リモートデスクトップで開くモニターを指定する

リモートデスクトップで開くモニターを指定する

デュアルモニター設定で、リモート デスクトップ v6 を特定のモニターで開く方法はありますか?

デュアル モニターをサポートしており、両方のモニターを使用するのは簡単であることはわかっていますが、私が本当に望んでいるのは、すべての RDP セッションをセカンダリ モニターで開くことです。頻繁に使用する接続はすべて .RDP ファイルに保存しており、現在は一部がプライマリ モニターで開き、その他がセカンダリ モニターで開くというごちゃ混ぜの状態になっています。

RDP ファイルを参照しても、どの設定がこれを制御しているかを判別できません (このファイルには含まれていないと思われます)。

では、これをどうやって制御するのでしょうか? ちなみに、私はクライアントとして Win7 を実行しており、ほとんど Server 2008 R2 マシンにのみ接続しています。

答え1

RDP ファイルには、RDP クライアント ウィンドウの位置とサイズを設定することでこれを制御するための画面位置とモードのオプションがありますが、どのモニターを指定するかを指定する明示的なオプションはありません。設定を操作して、モニターの組み合わせで必要な結果が得られるものを選択する必要があります。定義したウィンドウ領域内でリモート デスクトップの幅と高さを個別に設定することもできます。

主な設定は

winposstr:s:0,m,l,t,r,b
m = mode ( 1 = use coords for window position, 3 = open as a maximized window )
l = left
t = top
r = right  (ie Window width)
b = bottom (ie Window height)

l,t 座標は標準の Windows 原点を基準としており、(0,0) は仮想デスクトップの左上、r,b 値は絶対的な幅と高さです。

winposstr:s:0,1,100,100,800,600

一番左のモニターの左端から 100 ピクセル内側、上端から 100 ピクセル下に 800 x 600 のウィンドウを開きます。

スクリーンモードオプションは、TSクライアントをウィンドウモードまたはフルスクリーンモードで開くように指示します。

screen mode id:i:x

ウィンドウ モードの場合は x を 1 に設定し、RDP「フル スクリーン」モードの場合は 2 に設定します。TS クライアントは、winposstr 設定の t、l、r、b 要件と最も重なり合う物理モニターに応じて、後者のモードで最適なモニターを選択します。

リモート デスクトップのサイズは、次の 2 つの rdp ファイル設定によって設定されます。

desktopwidth:i:x
desktopheight:i:y

ここで、x と y は、必要なデスクトップの寸法 (ピクセル単位) です。当然、これが選択したウィンドウ サイズより大きい場合は、スクロール バーを処理する必要があり、小さい場合は、デスクトップの周囲に未使用のスペースができます。ウィンドウ モードを選択する場合、選択するウィンドウ サイズは、デスクトップの dpi に応じて変化するピクセル数だけリモート デスクトップ サイズよりも大きくする必要がありますが、従来は、幅が約 6 ピクセル、高さが約 27 ピクセル (タイトル バー用) でした。

リモートデスクトップブログにこれに関する記事があります。こここれらの設定間の相互関係についての詳細な追加分析がいくつかある。Ohman Automation Corpのウェブサイトにあるこの記事

答え2

.rdp ファイルの分析

.rdpファイルの内容は次のようになります:

screen mode id:i:2
use multimon:i:0
desktopwidth:i:1680
desktopheight:i:1050
session bpp:i:32
winposstr:s:0,1,-1680,0,-115,1050
[….]

キーワードを探すウィンポスト最も重要なパラメータは、winposstr の後の数字です。最初の「:s:0,1」は無視し、最後の 4 つのコンマ区切りの数字に注目してください。

最後の4つの数字はピクセル単位で、左、上、右、 そしてリモート セッション ウィンドウの端。

数字は実際にはウィンドウが復元されたときのウィンドウの位置を指しますが、ウィンドウの左端のピクセル位置は、ウィンドウが最大化されたときにリモート セッションが使用するモニターも決定するため重要です。

winposstrの値を計算する

使用する数値は、所有するモニターの数、各モニターの画面解像度、およびプライマリ モニターとして選択したモニターによって異なります。

左端の位置によってモニターが決まる

最後の 4 つの数字のうち最も重要な最初の数字は、ウィンドウの左端の位置を示します。プライマリ モニターが中央にあり、左右にモニターがある場合は、左側のモニターには負の数値を使用し、右側のモニターには正の数値を使用します。

たとえば、左側に解像度が1680 x 1050のモニターが2台ある場合は、-1680セッションウィンドウをモニターのすぐ左に配置し、それを2倍にします(-3360) をクリックすると、ウィンドウが左端のモニターに配置されます。

winposstr:s:0,1,**-1680**,0,0,1050

winposstr:s:0,1,**-3360**,0,-1680,1050

プライマリ モニターの解像度が 1200 x 1920 の場合、1200 を使用してウィンドウをすぐ右側のモニターに配置します。この方法は、そのピクセル位置がプライマリ モニターの終了位置 (右側のモニターの開始位置) であるため機能します。

winposstr:s:0,1,**1200**,0,2880,1050

右側に解像度 1680 x 1050 のモニターが 2 つあり、ウィンドウを右端のモニターに配置する場合は、1680 に 1200 を加算して 2880 にします。

winposstr:s:0,1,**2880**,0,4560,1050

上端と下端 その他の数値は、ウィンドウが復元されたとき (最大化されていないとき) にのみ実際に影響し、好みに応じて調整できます。

2 番目の数字 (最後から 3 番目) はウィンドウの最上端を示します。特別な要件がない限り、この数字は 0 のままにしておくことができます。4 番目 (最後) の数字はウィンドウの垂直解像度 (= 下部) です。上記の例のように、これをモニターの最大垂直解像度のままにしておくことができます。

winposstr:s:0,1,1200,**0**, 2880,**1050**

右端 ウィンドウの右端は、最後の 2 番目の数字で表されます。特に指定しない限り、最大化されたウィンドウと同じサイズに設定できます。上記のモニター解像度の例に従って、計算は次のようになります。

Monitor Right Edge Calculation      Winposstr Value
Leftmost    -3360 + 1680 = -1680    winposstr:s:0,1,-3360,0,**-1680**,1050
Immediate left  -1680 + 1680 = 0    winposstr:s:0,1,-1680,0,**0**,1050
Immediate right 1200 + 1680 = 2880  winposstr:s:0,1,1200,0,**2880**,1050
Rightmost   1200 + 1680 + 1680 = 4560   winposstr:s:0,1,2880,0,**4560**,1050

答え3

私も今日同じ問題を解決しようとしましたが、これらの指示のバリエーションを見つけ続けましたが、うまくいきませんでした。「ウィンポスト」解決策 これまでのところ問題は発生しておらず、同じことを実現する、はるかに簡単な回避策を見つけました。私は Windows 10 を使用しています。

span monitors:i:1
multimon:i:1
selectedmonitors:s:0,1,2

探すか追加する'選択されたモニター:s:'行を RDP 構成ファイルに追加し、最初にプライマリ ディスプレイを入力します。

モニターの表示を取得するには、コマンドプロンプトを開いて次のコマンドを実行します。「mstsc /l」モニターのID番号と位置をリストしたウィンドウが表示されます。これらは、ディスプレイ設定に表示される数字と同じではないことに注意してください。

私の場合はモニターが 3 台あり、次のものが返されました:

0: 1024  x 768; (-1024, 11, -1, 778)
1: 1920 x 1080; (2560, 11, 4479, 1090)
2: 2560 x 1440; (0, 0, 2559, 1439)

この特定の接続には特定の 2 つのモニター (0 と 2) のみを使用し、モニター '2' をプライマリ モニターにしたいので、構成は次のようになります。

selectedmonitors:s:2,0

答え4

画面座標を使用する回答は実装が面倒であり、異なる画面設定を頻繁に変更する場合 (ホットデスクやハイブリッド作業など) や、RDP ファイルを他のユーザーと共有する場合、うまく機能しません。

以下の設定からスコット・ハンセルマンのブログ私にとってはうまくいきました:

screen mode id:i:2
span monitors:i:1
use multimon:i:1
selectedmonitors:s:1,2

最後の行だけは、状況に合わせて調整する必要があります。画面が 3 つあり、実行メニューで「mstsc /l」を実行すると、左から右に 0、1、2 の番号が付けられていることがわかります。そのため、次のオプションから選択できます。

selectedmonitors:s:0,1 //first 2 screens
selectedmonitors:s:1,2 //last 2 screens
selectedmonitors:s:0,1,2 //all 3 screens
selectedmonitors:s:0 // first screen only
selectedmonitors:s:1 // second screen only
selectedmonitors:s:2 // third screen only
selectedmonitors:s:0,2 //this doesn't work so just does second screen

関連情報