Управление параметрами клиента FreeRDP

В статье описаны варианты использования wrapper-скрипта для перехвата и добавления параметров клиента xfreerdp.

circle-info

Информация ниже основана на логике работы клиента: Если по пути /usr/bin/udsrdp находится исполняемый файл, то этот путь считается более приоритетным по сравнению со стандартным /usr/bin/xfreerdp. Таким образом, при запросе сервиса параметры от брокера будут переданы именно udsrdp.

Передача дополнительных параметров для получения пароля учетной записи пользователя

В случае, когда клиенту необходимо подключиться к опубликованному приложению RemoteApp, но в параметрах запуска xfreerdp от брокера не поступает пароль для подключения пользователя - есть возможность получения пароля от пользователя в всплывающем диалоговом окне.

circle-info

Для реализации необходимо наличие установленной утилиты zenity в окружении клиента.

Для этого необходимо разместить файл по пути /usr/bin/udsrdp со следующим содержимым:

#!/bin/bash
catchedArgs=""
for arg in "$@"
do
    catchedArgs="$catchedArgs $arg"
done

/usr/bin/xfreerdp ${catchedArgs} /p:$(zenity --entry --title="Password input" --text="Введите пароль:" --hide-text)

Исключение параметров для работы с xfreerdp3

По умолчанию брокер передает параметры в формате, адаптированном для xfreerdp версии 2. В 3й версии клиента xfreerdp был изменен формат передачи некоторых параметров, что может приводить к ошибкам при запуске сервиса. Рассмотрим перехват параметров старого формата, передача которых вызывает ошибки запуска. Для этого необходимо разместить файл по пути /usr/bin/udsrdp со следующим содержимым:

Передача и исключение параметров для использования единого транспорта для версий xfreerdp2 и xfreerdp3

В случае, если версии клиента xfreerdp у пользователей могут отличаться, можно избежать необходимости создания дополнительных транспортов подключения, модифицируя передаваемые параметры на основании версии клиента. Для этого необходимо разместить файл по пути /usr/bin/udsrdp со следующим содержимым:

Last updated