我有一个远程桌面场的测试环境,其中有一个连接代理在远程桌面会话主机服务器之间平衡登录负载。所有服务器都基于 Server 2012 R2 构建。使用 rd web 访问,我们可以从任何地方访问这个场。
通过 Web 访问登录时,您可以选择屏幕分辨率或使用全屏。如果您有两个显示器,选择全屏时,它将始终使用您的两个显示器。
是否有人知道如何调整 RDWeb 页面,以便您可以选择是否使用两个显示器?
从 RDP 6.1 开始,此选项位于 GUI 中,因此我想有一种方法可以将其添加到 Web 访问页面。
答案1
默认情况下,用户无法选择在基于 Windows Server 2012(R2) 的 Microsoft RDS 场中使用一个或多个监视器。尽管有一个选项可以在 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>
内容如下:
<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>
笔记:
从原文中可以看出,微软正在搜索正则表达式“connection type:i:”。
在生成的rdp文件内容中,文本是“连接类型%3Ai%3A”。
这意味着微软的“优化我的体验”选项永远不会起作用。
当您现在转到 RDS 网页时,您将看到一个复选框,其中带有“使用多个显示器”文本
将远程应用程序配置“重定向监视器的最大数量”设置为大于 1 的数字非常重要。除非此解决方案不起作用。