Могут ли клиенты RDP запускать удаленные приложения, а не рабочие столы

Могут ли клиенты RDP запускать удаленное приложение, а затем отображать только это приложение (а не рабочий стол)? Приложение будет отображаться в полноэкранном режиме в клиенте, и если приложение будет закрыто, сеанс завершится.


rdp
person Richard Dorman    schedule 04.08.2009    source источник
comment
Именно то, что я искал ... спасибо за вопрос!   -  person Gishu    schedule 31.08.2009
comment
Ответ @ user172681 содержит самую последнюю ссылку. Также теперь есть отличный инструмент под названием «RemoteApp Tool» (см. Ссылки в разделе обновлений вверху страницы) для настройки удаленных приложений и создания файлов RDP ... отлично работал у меня на Win7.   -  person John Rix    schedule 19.09.2014


Ответы (10)


Используя файл подключения RDP, вы можете установить альтернативную оболочку в качестве вашего приложения; синтаксис файла похож на

alternate shell:s:c:\winnt\system32\notepad.exe

и вы передаете это как аргумент командной строки в mstsc.exe; это похоже на решение chrissr, но не влияет на каждый запускаемый сеанс RDP. Более полное резюме настроек здесь.

person Steve Gilham    schedule 17.08.2009
comment
у меня не сработало ... я видел свойство в файле .rdp, но внесение изменения (которое должно работать) ничего не изменило, когда я инициировал соединение. удаленное взаимодействие с Vista x64, чтобы выиграть 7 x64. - person sonjz; 18.10.2012
comment
К сожалению, ссылка мертвая. - person Nikola Malešević; 07.08.2015
comment
Не могли бы вы дополнить это подробностями или хотя бы исправить ссылку? - person WhiteHotLoveTiger; 26.11.2015
comment
Используйте эту ссылку: http://web.archive.org/web/20130127155938/http://coe.uncc.edu/mosaic/remote_desk/RDP%20File%20Settings.htm - person lynx_74; 19.04.2016
comment
У меня не работает на windows 10. Они убрали эту функцию? - person مسعود; 22.04.2017
comment
У меня все еще работает на Windows 10 20H2 (19042.928)! - person LinuxLuigi; 20.04.2021

"альтернативная оболочка" , похоже, больше не работает в последних версиях Windows, < a href = "https://stackoverflow.com/questions/1226772/can-rdp-clients-launch-remote-applications-and-not-desktops/1288664#comment68520346_1288664"> RemoteApp - лучший способ.

remoteapplicationmode:i:1
remoteapplicationname:s:Purpose of the app shown to user...
remoteapplicationprogram:s:C:\...\some.exe
remoteapplicationcmdline:s:

Чтобы заставить это работать, например, Windows 10 Professional, необходимо включить политику:

[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services]
"fAllowUnlistedRemotePrograms"=dword:00000001
person Thorsten Schöning    schedule 08.06.2018
comment
Просто для большей точности: указанные выше изменения (из первого раздела) необходимо внести в сам файл .rdp и в реестр на сервере. - person picrap; 27.06.2018
comment
Для записи есть два ключа RDP с одинаковыми названиями: remoteapplicationfile:s и remoteapplicationprogram:s. Ключ *file указывает полный путь к исполняемому файлу на локальном (главном) компьютере, а ключ *program указывает исполняемый файл на удаленном компьютере. - person Moshe Rubin; 30.08.2020

Это довольно легко достижимо.

  1. Нам нужно разрешить запуск любых программ, не указанных в списке, по протоколу RDP.
    1.1 Сохраните приведенный ниже сценарий на рабочем столе, расширение должно оканчиваться на .reg.
Windows Registry Editor Version 5.00

    [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Terminal Server\TSAppAllowList]
    "fDisabledAllowList"=dword:00000001


1.2 Щелкните файл правой кнопкой мыши и выберите Объединить, Да, ОК.

  1. Изменение нашего файла .rdp.
    2.1 В конце нашего файла добавьте следующий код:
remoteapplicationmode:i:1
remoteapplicationname:s:This will be the optional description of the app
remoteapplicationprogram:s:Relative or absolute path to the app
                           (Example: taskmgr or C:\Windows\system32\taskmgr.exe)
remoteapplicationcmdline:s:Here you'd put any optional application parameters


Или просто воспользуйтесь этим, чтобы убедиться, что он работает:

remoteapplicationmode:i:1
remoteapplicationname:s:
remoteapplicationprogram:s:mspaint
remoteapplicationcmdline:s:

2.2. Введите свое имя пользователя и пароль и подключитесь.


3. Теперь вы можете без проблем использовать RemoteApp, как если бы оно работало на вашем локальном компьютере ????

person Community    schedule 24.01.2020
comment
В отличном ответе выше используется ключ remoteapplicationprogram:s для указания приложения, находящегося на удаленном компьютере. Чтобы запустить локальное приложение на стороне хоста на удаленном компьютере, используйте вместо этого ключ remoteapplicationfile:s. - person Moshe Rubin; 31.08.2020
comment
Это работает отлично, единственное, что не было на 100% ясным, это то, что регистр должен запускаться на удаленной машине. - person David Wilton; 12.07.2021

Это называется «бесшовным» режимом. rdesktop, клиент RDP для Unix, способен на это. На странице руководства:

   -A     Enable SeamlessRDP. In this mode, rdesktop creates a X11 window for each window on the server
          side.  This  mode  requires  the  SeamlessRDP  server side component, which is available from
          http://www.cendio.com/seamlessrdp/.  When using this option, you  should  specify  a  startup
          shell which launches the desired application through SeamlessRDP.

См. Упомянутый веб-сайт Cendio для получения дополнительной информации.

person ypnos    schedule 16.08.2009
comment
есть ли что-нибудь подобное в Windows? - person ScottC; 21.12.2016

Да, вы можете изменить оболочку по умолчанию с Explorer.exe на конкретное приложение.

В Regedit перейдите к HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows NT \ CurrentVersion \ Winlogon. Текущая оболочка должна быть Explorer.exe. Измените его на YourApp.exe. Это изменит оболочку для всех пользователей, которые входят в систему. Если вы хотите изменить его только для определенного пользователя, перейдите к тому же ключу в HKEY_CURRENT_USER.

person chrissr    schedule 16.08.2009
comment
Примечание. Пользователи по-прежнему смогут использовать CTRL-Alt-Del и получать доступ к другим приложениям. Вы можете отключить CTRL-Alt-Del для учетной записи или группы, которые будут входить в систему через RDP. - person chrissr; 16.08.2009
comment
Это фактически не позволяет пользователю регулярно входить в систему. - person ypnos; 17.08.2009

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

https://social.technet.microsoft.com/wiki/contents/articles/10817.publishing-remoteapps-in-windows-server-2012.aspx

person AlexDev    schedule 08.03.2018

Я думаю, что Citrix занимается именно этим. Хотя я не уверен в деталях, так как использовал его всего пару раз. Я думаю, что тот, который я использовал, назывался XenApp, но я не уверен, что это то, что вам нужно .

person LiamGu    schedule 04.08.2009
comment
XenApp, похоже, больше ориентирован на виртуализацию приложений, чем на удаленный доступ (хотя я вижу, что у него есть удаленный вариант). Я также ищу что-нибудь в лагере с открытым исходным кодом (например, rdesktop). - person Richard Dorman; 04.08.2009
comment
Под капотом ключевым компонентом XenApp по-прежнему остаются серверные вычисления (как и десять лет назад, когда продукт назывался MetaFrame). Просто маркетинговая мода изменилась, и продукт расширился, и теперь он включает больше, чем просто ядро ​​удаленного взаимодействия приложений. - person Steve Gilham; 17.08.2009

Другой способ показан в этой статье CodeProject:

http://www.codeproject.com/KB/IP/tswindowclipper.aspx

Основная идея состоит в том, чтобы создать виртуальный канал, который отправляет позицию окна приложений, которые вы хотите показать, а затем визуализирует только эту часть окна на клиенте.

person Jon Clegg    schedule 22.08.2009

RDP не делает этого изначально.

Как говорили другие ответы, вам нужно будет выполнить некоторые сценарии и внести изменения в политику в качестве кладжа, чтобы затруднить вход в систему RDP для запуска чего-либо, кроме предполагаемого приложения.

Однако с 2008 года Microsoft выпустила технологию виртуализации приложений через службы терминалов, которая позволит вам сделать это без проблем.

person James    schedule 17.08.2009

По крайней мере, в 2008R2, если учетные записи используются только для RDP, а не для локального входа в систему, вы можете установить это для каждой учетной записи. Это должно работать для тонких клиентов. Если учетные записи также используются на локальных рабочих столах, это также повлияет на эти логины.

В ADUsers & Computers откройте свойства учетной записи и перейдите на вкладку Environment. На этой вкладке установите флажок «Запускать следующую программу при входе в систему» ​​и укажите путь и исполняемый файл для программы.

person fencepost    schedule 13.02.2018