Могут ли клиенты RDP запускать удаленное приложение, а затем отображать только это приложение (а не рабочий стол)? Приложение будет отображаться в полноэкранном режиме в клиенте, и если приложение будет закрыто, сеанс завершится.
Могут ли клиенты RDP запускать удаленные приложения, а не рабочие столы
Ответы (10)
Используя файл подключения RDP, вы можете установить альтернативную оболочку в качестве вашего приложения; синтаксис файла похож на
alternate shell:s:c:\winnt\system32\notepad.exe
и вы передаете это как аргумент командной строки в mstsc.exe; это похоже на решение chrissr, но не влияет на каждый запускаемый сеанс RDP. Более полное резюме настроек здесь.
"альтернативная оболочка" , похоже, больше не работает в последних версиях 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
.rdp
и в реестр на сервере.
- person picrap; 27.06.2018
remoteapplicationfile:s
и remoteapplicationprogram:s
. Ключ *file
указывает полный путь к исполняемому файлу на локальном (главном) компьютере, а ключ *program
указывает исполняемый файл на удаленном компьютере.
- person Moshe Rubin; 30.08.2020
Это довольно легко достижимо.
- Нам нужно разрешить запуск любых программ, не указанных в списке, по протоколу 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 Щелкните файл правой кнопкой мыши и выберите Объединить, Да, ОК.
- Изменение нашего файла .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, как если бы оно работало на вашем локальном компьютере ????
remoteapplicationprogram:s
для указания приложения, находящегося на удаленном компьютере. Чтобы запустить локальное приложение на стороне хоста на удаленном компьютере, используйте вместо этого ключ remoteapplicationfile:s
.
- person Moshe Rubin; 31.08.2020
Это называется «бесшовным» режимом. 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 для получения дополнительной информации.
Да, вы можете изменить оболочку по умолчанию с Explorer.exe на конкретное приложение.
В Regedit перейдите к HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows NT \ CurrentVersion \ Winlogon. Текущая оболочка должна быть Explorer.exe. Измените его на YourApp.exe. Это изменит оболочку для всех пользователей, которые входят в систему. Если вы хотите изменить его только для определенного пользователя, перейдите к тому же ключу в HKEY_CURRENT_USER.
Это называется RemoteApp. Чтобы использовать его, вам необходимо установить службы терминалов, которые теперь называются службами удаленных рабочих столов.
Я думаю, что Citrix занимается именно этим. Хотя я не уверен в деталях, так как использовал его всего пару раз. Я думаю, что тот, который я использовал, назывался XenApp, но я не уверен, что это то, что вам нужно .
Другой способ показан в этой статье CodeProject:
http://www.codeproject.com/KB/IP/tswindowclipper.aspx
Основная идея состоит в том, чтобы создать виртуальный канал, который отправляет позицию окна приложений, которые вы хотите показать, а затем визуализирует только эту часть окна на клиенте.
RDP не делает этого изначально.
Как говорили другие ответы, вам нужно будет выполнить некоторые сценарии и внести изменения в политику в качестве кладжа, чтобы затруднить вход в систему RDP для запуска чего-либо, кроме предполагаемого приложения.
Однако с 2008 года Microsoft выпустила технологию виртуализации приложений через службы терминалов, которая позволит вам сделать это без проблем.
По крайней мере, в 2008R2, если учетные записи используются только для RDP, а не для локального входа в систему, вы можете установить это для каждой учетной записи. Это должно работать для тонких клиентов. Если учетные записи также используются на локальных рабочих столах, это также повлияет на эти логины.
В ADUsers & Computers откройте свойства учетной записи и перейдите на вкладку Environment. На этой вкладке установите флажок «Запускать следующую программу при входе в систему» и укажите путь и исполняемый файл для программы.