Запуск приложения через rdp linux

Работа с freerdp и RemoteApp

freerdp — клиент с открытым кодом для подключения к удаленному рабочему столу по протоколу RDP.

Установка freerdp

В РЕД ОС имеется две различные сборки пакета freerdp:

  • freerdp — не имеющий поддержки Kerberos;
  • freerdp-krb — пакет с поддержкой Kerberos и GSS API, может оказаться необходимым для работы с Windows Server 2016, 2019 или 2022.

Для установки пакета без поддержки Kerberos выполните команду:

Для установки пакета с поддержкой Kerberos и GSS API выполните команду:

В случае, если выбранная для работы версия сборки не подошла и возникают проблемы с подключением, можно заменить уже установленный пакет на другой. Информацию о замене пакетов см. в разделе «Решение возникающих проблем».

Описание часто используемых параметров:

Полный список параметров представлен на официальной странице проекта freerdp.

Варианты использования freerdp для подключения к удаленному рабочему столу

Подключение папки

xfreerdp /u:bob /d:win.redos /v:10.81.1.196 /cert-ignore /sec:rdp /p:my_password /drive:folder,/home/bob@win.redos/temp

Подключение принтера

Названия подключенных принтеров можно вывести командой lpstat -a.

xfreerdp /u:bob /d:win.redos /v:10.81.1.196 /cert-ignore /sec:rdp /p:my_password /a:printer,"Kyocera-Kyocera-ECOSYS-P2335dn-(KPDL)"

Подключение токена

С помощью pcsc_scan узнаем имя токена, например, Reader 0: Aladdin R.D. JaCarta 00 00 достаточно указать первое вхождение в имени Aladdin.

xfreerdp /u:user /p:my_password /smartcard:Aladdin /v:10.81.1.196

Перенаправление звука и микрофона в сессию

xfreerdp /v:10.81.1.196 /u:user /p:my_password /sound:sys:oss,dev:1,format:1 /sound:sys:alsa /microphone:sys:oss,dev:1,format:1 /microphone:sys:alsa

где sys:alsa — явное указание какой звуковой поддержки выбрать (alsa/pulse).

Подключение к сессии с явным указанием размеров окна

xfreerdp /v:10.81.1.196 /u:user /p:my_password /w:800 /h:600

Данное явное указание полезно в тех случаях, когда стандартное разрешение не умещается на мониторе.

Читайте также:  Command to run script in linux

xfreerdp_gui — графическая оболочка для работы с freerdp

Утилита xfreerdp_gui представляет собой графическую оболочку для работы с freerdp.

Данная утилита устанавливается в РЕД ОС 7.3 следующей командой:

sudo -E dnf install xfreerdp_gui

Запуск утилиты доступен из «Главного меню» — «Интернет» — «Оболочка для FreeRDP».

Главное окно утилиты представляет функционал по подключению к xrdp или Windows RDP серверу.

Пользователь может задать для своих целей параметры, представленные на снимке основного окна утилиты.

Для выбора необходимого разрешения экрана и дополнительных параметров предусмотрена вкладка «Экран».

Если требуется работа с пробросом папки или устройств, таких как принтер, токен или звук на серверную часть — для этого предусмотрена вкладка «Устройства».

Для настройки протоколирования событий предусмотрена вкладка «Протоколирование».

RemoteApp — запуск приложений

RemoteApp — позволяет запускать приложения по rdp, как если бы они были запущены на локальном компьютере пользователя, т.е пользователь запускает приложение, которое выполняется на сервере, но внешне выглядит, будто оно запущено на локальном компьютере. Для доступа к приложению, оно предварительно должно быть опубликовано на сервере rdp. В строке подключения укажите приложение, доступное на сервере приложений.

xfreerdp /u:user /d:win.redos /v:10.81.1.196 /cert-ignore /p:my_password /app:"||word"

Запуск приложение и автоматическое открытие в нем определенного файла:

xfreerdp /u:user /d:win.redos /v:10.81.1.196 /cert-ignore /p:my_password /app:"||notepad" /app-cmd:"C:\readme.txt"

GUI запрос пароля:

xfreerdp /u:user /d:win.redos /v:10.81.1.196 /cert-ignore /p:$(zenity --entry --title="Domain Password" --text="Enter your password:" --hide-text)

В данном примере используется zenity — утилита, которая позволяет выводить на экран диалоговые окна. В данном случае — это диалог ввода пароля.

Решение возникающих проблем

При наличии одного из пакетов в системе, замена на другой его вариант производится с опцией install (а не update!):

dnf install freerdp-krb-libs libwinpr-krb
dnf install freerdp-default-libs libwinpr-default

При этом пакетный менеджер корректно удаляет имеющуюся версию из системы и заменяет её устанавливаемой.

Читайте также:  Linux kernel module headers

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

Дата последнего изменения: 24.05.2023

Если вы нашли ошибку, пожалуйста, выделите текст и нажмите Ctrl+Enter.

Источник

Запуск приложения через rdp linux

Да обретет ищущий!
Итак, мини мануал, авось кому пригодится..)
Запуск единичного приложения в windows xp, 7, 10, из линукс с помощью freerdp:

xfreerdp -u user -p *** -g 800x600 192.168.1.41

Разумеется, предварительно нужно развернуть терминальный сервер на винде. Это делается с помощью патча очень быстро и просто, например так: https://serveradmin.ru/terminalnyiy-ser . indows-10/
Как я уже говорил выше, создаем столько пользователей, сколько нужно программ для запуска из линукса.
Например, нужна программа notepad.exe.
Создаем пользователя под именем «notepad» (не обязательно такое имя, какое хотите. ))
Создаем два батника:
Первый батник, на вход удаленного пользователя с таким содержанием:

echo off REM Завершаем процесс: explorer.exe taskkill /F /IM explorer.exe REM Назначаем переменную для нужной программы set ProcessName=notepad.exe REM Если в диспетчере задач процесс данной программы не запущен, то запускаем for /F %%i in ('tasklist /FI "IMAGENAME eq %ProcessName%" ^| find /C "%ProcessName%"') do ( if "%%i" == "0" ( start /max C:\windows\notepad.exe ) ) 

Что он делает: убивает процесс explorer.exe(дабы вошедший пользователь не мог ковыряться в винде, а видел только окно программы), и запускает нужную программу в полноэкранном режиме, в данном случае это: notepad.exe

Второй батник, на выход удаленного пользователя, с содержанием:

echo off REM Назначаем переменную для нужной программы set ProcessName=notepad.exe REM Если в диспетчере задач процесс данной программы запущен, то завершаем этот процесс for /F %%i in ('tasklist /FI "IMAGENAME eq %ProcessName%" ^| find /C "%ProcessName%"') do ( if "%%i" == "1" ( taskkill /f /im %ProcessName% ) ) 

Что он делает: он убивает процесс нашей программы. Для чего это нужно? Если пользователь закроет окно freerdp, при этом не закроет окно программы, в данном примере notepad.exe, то она будет висеть и жрать процессор, что нам не нужно. Справедливости ради, нужно отметить, что команда

Читайте также:  Восстановить linux через диск

, подходит для закрытия не всех программ. Для определенных программ, есть свои команды для правильного закрытия с сохранением, тут нужно подходить индивидуально.

Теперь, нужно создать две задачи в планировщике заданий.
Первое задание: выбираем триггер: при подключении к пользовательскому сеансу. Выбрать определенного пользователя, отметить Подключение с удаленного компьютера, и выбрать путь к нашему первому батнику, как на фото:

Второе задание: выбираем триггер: при отключении от пользовательского сеанса. Все остальное точно так же, только путь ко второму батнику:

sana-555 писал(а): Нее, так тоже не пойдет, потому что будет выбивать других пользователей, при заходе на одну и ту же учетку. )

Чтобы этого избежать нужно запустить редактор локальной групповой политики gpedit.msc и пройти по адресу: Конфигурация компьютера\Административные шаблоны\Компоненты Windows\Службы удаленных рабочих столов\Узел сеансов удаленных рабочих столов\Подключения — Ограничить пользователей служб удаленных рабочих столов одним сеансом служб удаленных рабочих столов. И поставить галочку на против: Отключить. Все, теперь сколько угодно человек может зайти под одной учетной записью, и при этом других не выбьет.
Что мы получаем взамен?
1. Запуск одного приложения в одном окне, ощущение что программа находится в линуксе (еще бы окно freerdp убрать, была бы ваще красота. ))
2. Нет нужды устанавлить специальную серверную винду
3. В серверной винде не все приложения корректно работают, взять к примеру антивирусы.

На этом фото, команду -s «cmd.exe», можно убрать (она все равно не работает(только в серверной винде)), это с прошлых экспериментов осталась, забыл убрать. )
п.с. Еще, что бы окно с блокнотом было как у меня, нужно предварительно скрыть панель задач, иначе внизу окна будет видно черную полоску во всю ширину окна, не аккуратненько как то..)

Источник

Оцените статью
Adblock
detector