为远程桌面网络访问添加多显示器选项

Jam*_*nds 5 rdp monitors remote-desktop screen-resolution

我有一个远程桌面场的测试环境,其中有一个连接代理负载平衡跨远程桌面会话主机服务器的登录。所有服务器均基于 Server 2012 R2 构建。使用 rd web access,我们可以从任何地方访问这个农场。

通过网络访问登录时,您可以选择屏幕分辨率或使用全屏。如果您在选择全屏时有两台显示器,它将始终使用您的两台显示器。

有谁知道如何调整RDWeb页面,以便您可以选择是否同时使用您的两个显示器?

从 RDP 6.1 开始,这个选项在 GUI 中,所以我想有一种方法可以将它添加到 Web 访问页面。

小智 3

默认情况下,用户无法选择在基于 Windows Server 2012(R2) 的 Microsoft RDS Farm 中使用一台或多台显示器。尽管有一个选项可以添加/替换 RD Web 访问页面生成的 RDP 文件内容中的选项。这可以通过修改 ShowOptimizeExperience 复选框来完成。

为此,您需要执行以下步骤:

  • 更改 IIS 管理器中的应用程序设置

  • 修改Site.xsl文件

  • 修改 RDWAStrings.xml 文件

更改 IIS 管理器中的应用程序设置

  • 启动 IIS 管理器

  • 转至:默认网站 -> 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>
Run Code Online (Sandbox Code Playgroud)

并附有以下文字:

<string id="OptimizeMyExperience">Use multiple monitors.</string>
Run Code Online (Sandbox Code Playgroud)

修改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>
Run Code Online (Sandbox Code Playgroud)

带有以下文字:

<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>
Run Code Online (Sandbox Code Playgroud)

笔记:

正如你在原文中看到的,微软正在搜索正则表达式“connection type:i:”。

在生成的 rdp 文件内容中,文本为“连接类型%3Ai%3A”。

这意味着微软的“优化我的体验”选项永远不会起作用。

当您现在转到 RDS 网页时,您将看到一个带有文本“使用多个显示器”的复选框

将远程应用程序配置“重定向监视器的最大数量”设置为大于 1 的数字非常重要。除非此解决方案不起作用。