¿Pueden los clientes RDP lanzar aplicaciones remotas y no escritorios?

82

¿Pueden los clientes RDP iniciar una aplicación remota y luego solo mostrar esa aplicación (y no el escritorio)? La aplicación aparecería en pantalla completa dentro del cliente y si la aplicación se cerrara, la sesión finalizaría.

Richard Dorman
fuente
1
Justo lo que estaba buscando ... ¡gracias por preguntar!
Gishu
1
La respuesta de @ user172681 proporciona el enlace más actualizado. Ahora también hay una herramienta ingeniosa llamada 'Herramienta RemoteApp' (vea los enlaces en la sección de actualizaciones en la parte superior de la página) para configurar sus aplicaciones remotas y generar los archivos RDP ... funcionó perfectamente para mí en Win7.
John Rix

Respuestas:

19

Con un archivo de conexión RDP, puede configurar el shell alternativo para que sea su aplicación; la sintaxis del archivo es como

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

y lo pasa como un argumento de línea de comandos a mstsc.exe; esto es similar a la solución de Chrissr, pero sin afectar cada sesión de RDP que inicie. Un resumen más completo de la configuración aquí .

Steve Gilham
fuente
6
no funcionó para mí ... vi la propiedad en el archivo .rdp, pero al hacer el cambio (que parece que debería funcionar), no cambió nada cuando inicié la conexión. Remoting desde Vista x64 para ganar 7 x64.
sonjz
3
Desafortunadamente, el vínculo está muerto.
Nikola Malešević
1
¿Podrías actualizar esto con más detalles o al menos arreglar el enlace?
WhiteHotLoveTiger
No me funciona en Windows 10. ¿Quitaron esta función?
مسعود
37

"shell alternativo" ya no parece funcionar en las versiones recientes de Windows, RemoteAppes el camino a seguir.

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

Para que esto funcione, por ejemplo, en Windows 10 Professional, es necesario habilitar alguna política :

[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services]
"fAllowUnlistedRemotePrograms"=dword:00000001
Thorsten Schöning
fuente
7
Solo para agregar algo de precisión: los cambios anteriores (de la primera sección) deben realizarse en el .rdparchivo en sí y en el registro en el servidor.
picrap
Para el registro, hay dos claves RDP con nombres similares: remoteapplicationfile:sy remoteapplicationprogram:s. La *fileclave especifica la ruta completa a un ejecutable en la computadora local (host) , mientras que la *programclave especifica un ejecutable en la computadora remota .
Moshe Rubin
10

A esto se le llama modo "continuo". rdesktop, el cliente RDP para Unix, es capaz de esto. Desde la página de manual:

   -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.

Consulte el sitio web de Cendio mencionado para obtener más información.

ypnos
fuente
2
¿Hay algo como esto disponible en Windows?
ScottC
7

Esto se puede lograr con bastante facilidad.

  1. Necesitamos permitir que cualquier programa no listado comience desde RDP.
    1.1 Guarde el siguiente script en su escritorio, la extensión debe terminar con .reg.
Editor del registro de Windows, versión 5.00

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


       1.2 Haga clic derecho sobre el archivo y haga clic en Merge, Yes, Ok.

  1. Modificando nuestro archivo .rdp.
    2.1 Al final de nuestro archivo, agregue el siguiente código:
modo de aplicación remota: i: 1
remoteapplicationname: s: esta será la descripción opcional de la aplicación
Remoteapplicationprogram: s: ruta relativa o absoluta a la aplicación
                           (Ejemplo: taskmgr o C: \ Windows \ system32 \ taskmgr.exe)
remoteapplicationcmdline: s: aquí pondría cualquier parámetro de aplicación opcional


O simplemente use este para asegurarse de que funcione:

modo de aplicación remota: i: 1
nombre de la aplicación remota: s:
programa de aplicación remota: s: mspaint
Remoteapplicationcmdline: s:

        2.2 Ingrese su nombre de usuario y contraseña y conéctese.


    3. Ahora puede usar su RemoteApp sin ningún problema como si se estuviera ejecutando en su máquina local 😉


fuente
La excelente respuesta anterior usa la remoteapplicationprogram:sclave para especificar una aplicación que reside en la computadora remota . Para ejecutar una aplicación local del lado del host en la computadora remota, use la remoteapplicationfile:sclave en su lugar.
Moshe Rubin
6

Sí, puede cambiar el shell predeterminado de Explorer.exe a una aplicación específica.

En Regedit, navegue hasta HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows NT \ CurrentVersion \ Winlogon. El shell actual debería ser Explorer.exe. Cámbielo a YourApp.exe. Eso cambiará el shell para todos los usuarios que inicien sesión en la máquina. Si solo desea cambiarlo para un usuario específico, vaya a la misma clave en HKEY_CURRENT_USER en su lugar.

Chrissr
fuente
Nota: Los usuarios aún podrán CTRL-Alt-Del y acceder a otras aplicaciones. Es posible que desee deshabilitar CTRL-Alt-Del para la cuenta o grupo que iniciará sesión a través de RDP.
chrissr
3
Esto efectivamente deshabilita al usuario para iniciar sesión regularmente.
ypnos
1

Creo que Citrix hace ese tipo de cosas. Aunque no estoy seguro de los detalles, ya que solo lo he usado un par de veces. Creo que el que usé se llamaba XenApp, pero no estoy seguro de si eso es lo que buscas.

LiamGu
fuente
XenApp parece tener más que ver con la virtualización de aplicaciones que con el acceso remoto (aunque veo que tiene una opción remota). También estoy buscando algo en el campo de código abierto (como rdesktop).
Richard Dorman
2
Bajo el capó, el componente clave de XenApp sigue siendo la informática basada en servidor (tal como lo era hace una década cuando el producto se llamaba MetaFrame). Es solo que las modas del marketing han cambiado y el producto se ha ampliado para contener más que el núcleo de la aplicación remota.
Steve Gilham
1

En este artículo de CodeProject se muestra otra forma:

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

La idea básica es crear un canal virtual que envíe la posición de la ventana de las aplicaciones que desea mostrar, luego solo renderice esa parte de la ventana en el cliente.

Jon Clegg
fuente
0

RDP no lo hará de forma nativa.

Como han dicho otras respuestas, deberá realizar algunas secuencias de comandos y realizar cambios en las políticas como una tontería para dificultar que los inicios de sesión de RDP ejecuten cualquier cosa que no sea la aplicación deseada.

Sin embargo, a partir de 2008, Microsoft ha lanzado la tecnología de virtualización de aplicaciones a través de Terminal Services que le permitirá hacerlo sin problemas.

James
fuente
0

Al menos en 2008R2, si las cuentas solo se usan para RDP y no para inicios de sesión locales, puede configurar esto por cuenta. Eso debería funcionar para clientes ligeros. Si las cuentas también se usan en escritorios locales, esto también afectaría esos inicios de sesión.

En ADUsers & Computers, abra las propiedades de la cuenta y vaya a la pestaña Environment. En esa pestaña, marque "Iniciar el siguiente programa al iniciar sesión" y especifique la ruta y el ejecutable del programa.

poste de la cerca
fuente