Добавить функцию нескольких мониторов в веб-доступ к удаленному рабочему столу

У меня есть тестовая среда для фермы удаленных рабочих столов с логинами балансировки нагрузки посредника соединений на хост-серверах сеансов удаленных рабочих столов. Все серверы построены на Server 2012 R2. Используя веб-доступ, мы можем получить доступ к этой ферме из любой точки мира.

При входе через веб-доступ вы можете выбрать разрешение экрана или использовать полный экран. Если у вас есть два монитора при выборе полноэкранного режима, он всегда будет использовать оба ваших монитора.

Кто-нибудь знает, как настроить страницу RDWeb, чтобы вы могли выбрать, следует ли использовать оба ваших монитора?

Эта опция присутствует в графическом интерфейсе начиная с RDP 6.1, поэтому я думаю, что есть способ добавить ее на страницу веб-доступа.

1 ответ

По умолчанию пользователь не может выбирать между использованием одного или нескольких мониторов в ферме Microsoft RDS на основе Windows Server 2012(R2). Хотя в содержимом файла RDP, который создается страницей веб-доступа к удаленным рабочим столам, есть возможность добавлять / заменять параметры. Это можно сделать, изменив флажок ShowOptimizeExperience.

Для этого вам необходимо выполнить следующие шаги:

  • Изменить настройки приложения в IIS Manager

  • Изменить файл Site.xsl

  • Изменить файл RDWAStrings.xml

Изменить настройки приложения в IIS Manager

  • Запустить IIS Manager

  • Перейдите на: Веб-сайт по умолчанию -> 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 ищет регулярное выражение "тип соединения:i:".

В генерируемом содержимом файла rdp текст имеет вид "тип соединения%3Ai%3A".

Это означает, что опция "Оптимизировать мой опыт" Microsoft никогда не будет работать.

Теперь, когда вы перейдете на свою веб-страницу RDS, вы увидите флажок с текстом "Использовать несколько мониторов".

Другие вопросы по тегам