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


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

9 53
rdp

9 ответов:

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

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

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

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

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

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

в regedit, перейдите в раздел HKEY_LOCAL_MACHINE\программное обеспечение\Майкрософт\Windows в НТ\раздел 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 откройте свойства учетной записи и перейдите на вкладку среда. На этой вкладке установите флажок "запускать следующую программу при входе в систему" и укажите путь и исполняемый файл программы.