Publishing and configuring RemoteApp programs
With RemoteApp programs, you can use RDS to make programs on a Remote Desktop Session Host (RD Session Host) server appear as if they are running on a user 's local computer. RemoteApp program windows are shown on and integrated with a client's Desktop instead of being presented as part of a session-based virtual desktop. A RemoteApp program open on a Desktop.
Using a RemoteApp program is similar to using a local application. When you implement RDS to provide access to a few applications, RemoteApp programs generally are easier for users to understand and use than session-based virtual desktops. Users can become confused when there is a session-based virtual desktop and a local Desktop. This is particularly true if the session-based virtual desktop is used in full-screen mode.
[For tablet users, working with a full session-based virtual desktop can be challenging because small tablet interfaces can make it difficult to navigate the full session-based virtual desktop and start applications. RemoteApp programs launch the program directly from the tablet to simplify the connectivity process.
Scenarios in which RemoteApp programs can be useful include the following:
- Remote users:
Users often need to access applications from remote locations, for example, when users work from home or work while traveling. RemoteApp programs allow these users to access applications over an Internet connection. Using Remote Desktop Gateway (RD Gateway) with RemoteApp programs helps secure remote access to applications without using a virtual private network (VPN). Additionally, you can allow users to access remote applications through an RD Web Access page or integrate applications on the Start screen.
- Line-of-business application deployments:
Organizations often need to run consistent line-of-business (LOB) applications on computers and devices that run different versions of Windows operating systems and non-Microsoft operating systems. Instead of deploying LOB applications locally, you can install applications on an RD Session Host server and make them as available as RemoteApp programs.
- Roaming users:
In some organizations, a user might work on several different computers. If users work on a computer on which an application isn't installed, they can access the application remotely through RDS.
- Branch offices:
In a branch office environment, there might be limited local Information Technology (IT) support and limited network bandwidth. If you use RemoteApp programs, you can centralize application management and improve remote application performance in limited bandwidth scenarios.
- Application compatibility:
When users have varying operating systems and configurations, conflicts may prevent applications from being installed locally. For example, multiple versions of an application may not coexist properly. Or an application may not be available for operating systems other than Windows. RemoteApp resolves compatibility issues by running the application on an RD Session Host instead of locally.
Understanding RemoteApp programs
A RemoteApp program is an application installed on an RD Session Host server. Remote Desktop Connection (RDC) and the RD Session Host use Remote Desktop Protocol (RDP) to redirect screen information for just the application instead of the full session-based virtual desktop. If a user runs multiple RemoteApp programs from the same session collection, the RemoteApp programs share the same session on the RD Session Host.
RemoteApp programs include the following features:
- Start without prompts:
When you click a RemoteApp program link or tile, the program can start without any prompts or user interaction. In the background, the client establishes an RDP connection, signs in, starts the remote program, and displays its window.
- Run in own window:
A RemoteApp program displays in its own window on a client. You can move, resize, minimize, maximize, or close the window the same way as any other application window. A RemoteApp window can show its content while you move or resize the window.
- Start automatically based on file type associations (FTAs):
You can start a RemoteApp program from an RD Web Access page, from the Start screen, or by double-clicking a file with an associated file name extension.
- Display live thumbnails and allow application switching:
A RemoteApp program icon displays on the taskbar even if the program is minimized. If multiple instances of a RemoteApp program run, multiple (tabbed) program icons display on the taskbar. When you move the pointer to the taskbar icon, a live thumbnail of the program window displays. You can use a standard Alt+Tab key combination to switch between running programs, including RemoteApp programs.
- Display notifications and dialog boxes locally:
If a RemoteApp program uses a notification area icon, this icon appears in the client's notification area. Also, RDS redirects dialog boxes and other windows from the RemoteApp program to the local Desktop.
- Have similar icons:
RemoteApp programs have similar icons on the taskbar as locally installed applications, but they include a "Remote Desktop" symbol. You can notice a change in the status of a RemoteApp program because the icon overlay is supported. For example, Microsoft Outlook uses a letter overlay to notify the user that new email has been received.
RemoteApp programs integrate so well with the local Desktop that users may not be aware that they are running on an RD Session Host server. This enables you to integrate specific apps from an RD Session Host server with locally installed apps on a desktop computer.
Installing applications on RD Session Host servers
Whether you are providing session-based virtual desktops or RemoteApp programs, you need to ensure that apps are installed properly on the RD Session Host servers. Before you attempt to install the app in a production environment, you need to verify that it works properly when installed on an RD Session Host server. When you install the app on an RD Session Host server, you need to follow a specific installation process.
The following are some considerations for deploying apps on RD Session Host servers:
- Suitability for multiuser environments:
This is the most important consideration for apps installed on RD Session Host servers. Historically, most end-user apps function well in multiuser environments, but this isn't always the case. Ideally, the app vendor officially will support installation on RD Session Host servers. In some cases, you may need to obtain an update from the app vendor that enables an app to run properly on an RD Session Host server. If an app can't run on RD Session Host servers, then you'll need to install it on desktops or consider using an alternative app.
Many apps that aren't officially supported for RD Session Host servers run properly, but the vendor hasn't done the necessary testing. You can choose to install the app anyway and accept the risk of unforeseen failures. Whether you do this depends on the organizational benefits of putting the app on RD Session Host servers versus the cost of potential failure in the future.
- App compatibility:
You need to investigate whether apps have compatibility issues when coexisting on RD Session Host servers. Ensure that you thoroughly test apps before you put them into a production environment. You might need collections with separate pools of RD Session Host servers to run incompatible applications separately from one another.
- App dependencies:
Install related apps or apps that have dependencies on other local apps on the same RD Session Host server. For example, all the apps in a suite such as Microsoft Office should be installed on the same RD Session Host server unless otherwise prescribed by the vendor.
- Capacity requirements:
There are no firm numbers on how many clients a single RD Session Host server can support. Resource requirements depend on the number of apps that are being used simultaneously and the resource requirements of individual apps. Adding a new app to an RD Session Host server will increase the load on the server. Don't assume that because the number of clients remains the same, the load won't increase.
- Licensing requirements:
The licensing requirements for apps vary widely among vendors and apps. In many cases, installing an app on an RD Session Host server means that you need to purchase licenses for every user who has access to session-based virtual desktops. In a large RDS deployment, this can be very expensive. You may be able to mitigate this by using RemoteApp programs, which can be controlled by user groups. Some vendors have specific licensing for RDS deployments.
Installing an app on an RD Session Host server is different from installing an app on a traditional desktop. RD Session Host servers operate in two modes: install mode and execute mode. You must put a server in install mode to install multiuser apps properly. In install mode, the Windows operating system ensures that appropriate registry entries and initialization (.ini) file settings are configured for an app to function in multiuser environments. After an app successfully installs, the server must be placed back into execute mode.
The Windows Installer Service is RDS-aware. This means that Windows Installer packaged apps (.msi) automatically are installed properly. Windows Installer switches to install mode and back to execute mode as part of the installation process. Most apps are distributed as Windows Installer packages as for installation, but you should verify before installing.
If the app isn't distributed as a Windows Installer package, then you need to ensure that you install it by using the proper process. One way to install the application properly is by using the Install Application On Remote Desktop Server option in the Programs area of Control Panel. This option is added to all RD Session Host servers. Using this option opens a wizard that prompts you for the location of the installation files and puts the server into install mode while performing the installation.
Alternatively, you can use a command prompt to manually put the RD Session Host server into install mode by using the following command:
change user /install
After the RD Session Host server is switched to install mode, install the application. Then, change the RD Session Host server back to execute mode by using the following command:
change user /execute
You also can check the current server mode by using the following command:
change user /query
You also can use apps deployed by using Microsoft Application Virtualization (App-V) for sessionbased virtual desktops and RemoteApp programs. Using App-V can mitigate some compatibility issues and simplify application deployment and updates.
Publishing RemoteApp programs
Before users can access RemoteApp programs, you must publish them. Publishing configures a session collection with the information necessary for users to access the apps on the RD Session Host servers.
To publish a RemoteApp program from a session collection, perform the following steps:
- In Server Manager, in the navigation pane, click Remote Desktop Services.
- In the navigation pane, click the session collection from which you want to deploy RemoteApp programs.
- In the RemoteApp Programs area, click Tasks, and click Publish RemoteApp Programs.
- In the Publish RemoteApp Programs Wizard, on the Select RemoteApp Programs page, select the check boxes beside the apps that you want to publish and click Next. This list of applications is queried from an RD Session Host server in the collection. If an app you want to publish isn't listed, you can use the Add button to browse for the executable for the app.
- On the Confirmation page, click Publish.
- On the Completion page, click Close.
After you publish RemoteApp programs in a session collection, that session collection can be used only for RemoteApp programs. You can't provide session-based virtual desktops and RemoteApp programs from the same session collection.
Configuring RemoteApp programs
After you publish a RemoteApp program, it appears in the RemoteApp Programs area. In this area, you can see the name of the program and whether it is visible in RD Web Access. To configure a RemoteApp program, right-click the RemoteApp program and click Edit Properties.
In the properties of a RemoteApp program, on the General page, you can change the RemoteApp Program Name. This value controls the name that is visible in RD Web Access for the application. You also can choose whether to Show The RemoteApp Program In RD Web Access.
You can organize applications in RD Web Access by entering a folder name in the RemoteApp Program Folder box. Any folder name that you enter is used to generate a folder in RD Web Access in which the RemoteApp program appears. After you have entered a folder name for one RemoteApp program, it is available in the drop-down list when you edit other RemoteApp programs. This makes it easier to organize the applications in consistent folder names.
The Parameters page has settings that control which command-line parameters can be passed to the application at startup. The options are as follows:
- Do Not Allow Any Command-Line Parameters: Prevents any command-line parameters from being used when starting the app. This is the default.
- Allow Any Command-Line Parameters: Allows users to pass command-line parameters to the RemoteApp program by using a custom RDP file. This isn't recommended because it may be a security risk.
- Always Use The Following Command-Line Parameters: Allows administrators to set command-line parameters that are used each time the RemoteApp program is started. Use this when an app requires command-line parameters to function properly.
The User Assignment page, allows you to control which users have access to the RemoteApp program. By default, all users and groups that have access to the collection have access to a RemoteApp program in that collection. If you choose to give specific users and groups access to the RemoteApp program, then the allowed users must be given access to the collection and the RemoteApp program.
The File Type Associations page, is used to define file associations that can be configured for the RemoteApp program. If you select a file type here, then clients with access to this RemoteApp program automatically launch the RemoteApp program when they double-click a file with that extension. For example, if the WordPad RemoteApp program is associated with the .docx file type, then the WordPad RemoteApp program will be launched to edit any .docx file that is opened. FTAs for RemoteApp programs only work when the client is using RemoteApp and Desktop Connections, which integrates with the Windows clients.
Windows PowerShell cmdlets for RemoteApp programs
As for other parts of RDS, there are Windows PowerShell cmdlets for creating and configuring RemoteApp programs. To get a list of Windows PowerShell cmdlets for RemoteApp programs, run the follow command:
Get-Command *RemoteApp* -Module RemoteDesktop