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

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

9 ответов


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

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

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


Это называется "плавный" режим. rdesktop, клиент RDP для Unix, способен на это. Из manpage:

   -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 для получения дополнительной информации.


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

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


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


"альтернативную оболочку" не работает больше в последних версиях Windows, 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

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

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

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


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

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


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

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

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


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

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