Skip to main content

3.7 – RemoteApp and start a program instead of the whole desktop

There are two ways to start a program:

Bildschirmfoto 2022-04-05 um 12.55.41.png

Start a program on connection use a program as shell of Windows. That means you can only use one program in this session. You’ll need to create 2 sessions to start 2 programs (this user will use two SparkView licenses then). To configure “Start a program on connection” in servers.json file, you need to specify “command” and “directory” options. Please make sure you allow users to start unlisted programs on Windows 2008:

Bildschirmfoto 2022-04-05 um 12.59.36.png

If you are using Windows Server 2012 R2 you can configure this in the Collection properties sheet by using Server Manager. By default, only programs in the RemoteApp Programs list can be started when a user starts a Remote Desktop Services session. You can also use following policy or registry to do the same:

  • Policy path: Windows Components\Remote Desktop Services\Remote Desktop Session Host\Connections
  • Scope: Machine Supported on: At least Windows Server 2008
  • Registry settings:
    HKLM\SOFTWARE\Policies\Microsoft\Windows NT\Terminal
    Services!fAllowUnlistedRemotePrograms

RemoteApp was introduced in RDP 6.1. All RemtoeApps running on client side can share only one session, even you are running thousands of RemoteApps. To configure RemoteApps in servers.json, you need to specify “remoteProgram”, “remoteWorkDir”, and “remoteArgs” options.

RemoteApp window will be automatically resized (no reconnection needed) when you resize the browser window. Here is a example for setting up RemoteApp in servers.json:

{
  "id": "RemoteAppWord",
  "displayName": "RemoteApp WORD",
  "server": "192.168.8.119",
  "icon": "kbd.png",
  "protocols": "rdp",
  "rdp": {
    "username": "Administrator",
    "mapClipboard": true,
    "password": "password",
    "remoteProgram": "||WINWORD"
  }
},

If you are using alias name of the RemoteApp, please make sure there are || before it.

For a good user experience, it’s better to start program without splash screen, also set time limit for disconnected session on RDSH:

  1. Log on to the terminal server as an administrator.
  2. Start the Local Group Policy Editor. To do this, click Start, click Run, type gpedit.msc, and then click OK.
  3. Locate the following node:
    Computer Configuration\Administrative Templates\Windows Components\Terminal Services\Terminal Server\Session Time Limits

Note: The policy settings are also located under User Configuration\Administrative Templates\Windows Components\Terminal Services\Terminal Server\Session Time Limits

Please check following links for more information:

Configure RemoteApp RDP settings:

http://technet.microsoft.com/en-us/library/cc733144.aspx
For better performance, you may want to add following lines in the “Custom RDP settings” page:

disable full window drag:i:1
disable menu anims:i:1
disable themes:i:1
disable wallpaper:i:1

Please be aware not all applications can run on RemoteApp and Terminal Server/RDSH environment. You may want to choose a Virtual Machine solution instead or connecting to Hyper-V console. All applications are guaranteed to work with Hyper-V console connection, but it doesn’t audio, video etc advanced RDP features.