web-dev-qa-db-ja.com

リモートデスクトップWebアクセスにマルチモニターオプションを追加する

リモートデスクトップセッションホストサーバー間でログインを負荷分散する接続ブローカーを備えたリモートデスクトップファームのテスト環境があります。すべてのサーバーはServer 2012 R2上に構築されています。 rd Webアクセスを使用すると、どこからでもこのファームにアクセスできます。

Webアクセス経由でログインする場合、画面解像度を選択するか、全画面を使用できます。フルスクリーンを選択するときに2つのモニターがある場合、常に両方のモニターを使用します。

両方のモニターを使用するかどうかを選択できるように、RDWebページを調整する方法を知っている人はいますか?

このオプションはRDP 6.1以降のGUIにあるため、Webアクセスページに追加する方法もあると思います。

4
James Edmonds

デフォルトでは、Windows Server 2012(R2)ベースのMicrosoft RDSファームで1つまたは複数のモニターの使用を選択するオプションはありません。 RD Webアクセスページによって生成されるRDPファイルコンテンツにオプションを追加/置換するオプションがあります。これを行うには、ShowOptimizeExperienceチェックボックスを変更します。

これを行うには、次の手順を実行する必要があります:

  • IIS Managerでアプリケーション設定を変更します

  • Site.xslファイルを変更する

  • RDWAStrings.xmlファイルを変更する

IISマネージャ)でアプリケーション設定を変更します

  • 開始IISマネージャ

  • 移動:既定のWebサイト-> RDWeb->ページ->アプリケーション設定

  • オプションShowOptimizeExperienceをFalseからTrueに変更します

RDWAStrings.xmlファイルを変更

次のパスに移動します。C:\ Windows\Web\RDWeb\Pages\en-US \メモ帳でファイルRDWAStrings.xmlを開きます

テキストを置き換えます:

<string id="OptimizeMyExperience">Optimize my experience for a LAN network when connecting to the computer or application.</string>

次のテキスト:

<string id="OptimizeMyExperience">Use multiple monitors.</string>

Site.xslファイルを変更

次のパスに移動します。C:\ Windows\Web\RDWeb\Pages \ファイルSite.xslを開きます

テキストstrRdpFileContentsを検索します

テキストを置き換えます:

<xsl:if test="$showoptimizeexperience">
    if (<xsl:value-of select="$feedidprefix"/>Controls.chkShowOptimizeExperience.checked) {
        var objRegExp = new RegExp("connection type:i:([0-9]+)", "i");
        var iIndex = strRdpFileContents.search( objRegExp );
        <!-- Add 'connection type' if it does exist otherwise replace. -->
        if ( -1 == iIndex ) {
            if ( "\\n" != strRdpFileContents.charAt(strRdpFileContents.length-1) ) { 
            strRdpFileContents += "\\r\\n"; 
            }
            strRdpFileContents += "connection type:i:6\\r\\n";
        } else { 
            strRdpFileContents = strRdpFileContents.replace(objRegExp, "connection type:i:6");
            }
        }
</xsl:if>

次のテキストで:

<xsl:if test="$showoptimizeexperience">
    var pmxUseMultimon = 0;
    if (<xsl:value-of select="$feedidprefix"/>Controls.chkShowOptimizeExperience.checked) {
        pmxUseMultimon = 1;
    }
    var objRegExp = new RegExp("use%20multimon%3Ai%3A([0-9])", "i");
    var iIndex = strRdpFileContents.search( objRegExp );
    <!-- Add 'use multimon' if it does exist otherwise replace. -->
    if ( -1 == iIndex ) {
        if ( "\\n" != strRdpFileContents.charAt(strRdpFileContents.length-1) ) { 
        strRdpFileContents += "\\r\\n"; 
        }
        strRdpFileContents += "use%20multimon%3Ai%3A"+pmxUseMultimon+"\\r\\n";
    } else { 
        strRdpFileContents = strRdpFileContents.replace(objRegExp, "use%20multimon%3Ai%3A"+pmxUseMultimon);
    }
</xsl:if>

注:

元のテキストからわかるように、Microsoftは正規表現「connection type:i:」を検索しています。

生成されるRDPファイルのコンテンツでは、テキストは「接続タイプ%3Ai%3A」です。

これは、Microsoftの「自分のエクスペリエンスを最適化する」オプションが機能しないことを意味します。

RDS Webページに移動すると、「複数のモニターを使用する」というテキストのチェックボックスが表示されます。

2
Michael Bos