How to Configure Windows Server 2016 RemoteApp

RemoteApp is a feature of Windows Server 2016 Remote Desktop Services that allows individual applications to be published and delivered to remote users as seamlessly integrated windows on their local desktops. Unlike a full Remote Desktop session where the user sees an entire remote desktop, RemoteApp presents only the application window. The application appears to run locally, complete with a taskbar icon, Alt+Tab integration, and clipboard sharing, while actually executing on the Remote Desktop Session Host server. This tutorial covers configuring RemoteApp programs from start to finish.

Benefits of RemoteApp

RemoteApp centralises application management: you install, update, and patch applications in one location (the RDSH server) and all users automatically receive the updates without any client-side changes. It enables delivery of Windows-only applications to non-Windows devices (Mac, iOS, Android) using the Microsoft Remote Desktop client. It provides application isolation, preventing conflicting application versions on client machines. For organisations moving legacy applications to a server model without a full VDI investment, RemoteApp is a cost-effective solution.

Prerequisites

You need a Windows Server 2016 RDS deployment with at minimum an RD Session Host server and an RD Connection Broker. RD Web Access is recommended for easy distribution. Install the applications you wish to publish on the RDSH server. Applications must be installed in execute mode (not install mode) and should be compatible with multi-user, session-based operation.

Step 1: Install the Application on the RDSH Server

Install applications on the RDSH in install mode to ensure registry settings are captured per-user rather than system-wide. Use the change user command or the Add/Remove Programs interface:

change user /install
msiexec /i "C:InstallersMyApp.msi" /quiet
change user /execute

After installation, test that the application runs correctly under a standard user account by switching user context on the RDSH and launching it manually.

Step 2: Publish a RemoteApp Program via Server Manager

Open Server Manager on the Connection Broker or management server. Navigate to Remote Desktop Services > Collections and select the session collection you want to add the RemoteApp to. In the RemoteApp Programs section, click Tasks > Publish RemoteApp Programs. The Publish RemoteApp Programs dialog opens. Click Add to browse for the program. Enter the full path to the executable or select it from the list of installed programs detected by the system. Configure the display name and optional command-line parameters. Click Next and then Publish.

Step 3: Publish a RemoteApp Program via PowerShell

For scripted or bulk publishing, use the New-RDRemoteApp cmdlet:

New-RDRemoteApp -CollectionName "DesktopCollection" -DisplayName "Notepad" -FilePath "C:WindowsSystem32notepad.exe" -ShowInWebAccess $true -ConnectionBroker "rdbroker.domain.local"

Publish with specific file type associations so that files of a certain extension automatically open in the RemoteApp:

New-RDRemoteApp -CollectionName "DesktopCollection" -DisplayName "Word 2016" -FilePath "C:Program FilesMicrosoft OfficerootOffice16WINWORD.EXE" -FileVirtualPath "C:Program FilesMicrosoft OfficerootOffice16WINWORD.EXE" -FileExtensions ".doc",".docx" -ShowInWebAccess $true -ConnectionBroker "rdbroker.domain.local"

Step 4: Configure RemoteApp Properties

Each RemoteApp has configurable properties. To view and modify them:

Get-RDRemoteApp -CollectionName "DesktopCollection" -DisplayName "Notepad" -ConnectionBroker "rdbroker.domain.local"

Update properties such as the icon, command-line arguments, and whether the app is visible in RD Web Access:

Set-RDRemoteApp -CollectionName "DesktopCollection" -DisplayName "Notepad" -ShowInWebAccess $true -CommandLineSetting Require -RequiredCommandLine "/A" -ConnectionBroker "rdbroker.domain.local"

The CommandLineSetting parameter controls how command-line arguments are handled. DoNotAllow prevents users from passing arguments. Allow permits optional arguments. Require forces a specific argument defined in RequiredCommandLine.

Step 5: Distribute RemoteApp via .rdp File

To distribute a RemoteApp directly without RD Web Access, generate an .rdp file for the application. Users can then double-click the .rdp file to launch the RemoteApp:

Export-RDRemoteApp -CollectionName "DesktopCollection" -DisplayName "Notepad" -ExportPath "C:rdp-filesnotepad.rdp" -ConnectionBroker "rdbroker.domain.local"

Review the generated .rdp file content:

type "C:rdp-filesnotepad.rdp"

Key entries in the .rdp file include remoteapplicationmode:i:1, remoteapplicationname:s:Notepad, remoteapplicationprogram:s:||notepad, full address:s:rdsh01.domain.local, and gatewayhostname:s:rdgateway.contoso.com if a gateway is in use.

Step 6: Distribute RemoteApp via ClickOnce MSI Package

For a more polished distribution experience, create a Windows Installer (.msi) package that installs shortcuts for the RemoteApp on the user’s Start menu and desktop. In Server Manager, right-click the RemoteApp and select Create RDP File and ClickOnce Package. Distribute the .msi via Group Policy software installation, SCCM, or Intune.

Step 7: Configure RemoteApp File Type Associations

File type associations make RemoteApp transparent to end users. When a user double-clicks a .docx file on their local machine, the file can be automatically opened in the RemoteApp version of Word running on the RDSH server. Configure file type associations in the RemoteApp properties or via PowerShell as shown in Step 3. The local client machine’s file association for .docx must also be set to the RemoteApp client (Remote Desktop Connection client). This is typically distributed via Group Policy using the Set Default Associations configuration XML.

Step 8: Remove a Published RemoteApp

To unpublish a RemoteApp program, use the Remove-RDRemoteApp cmdlet or right-click the application in Server Manager and select Unpublish:

Remove-RDRemoteApp -CollectionName "DesktopCollection" -DisplayName "Notepad" -ConnectionBroker "rdbroker.domain.local" -Force

Security and User Experience Tips

Restrict which users can access specific RemoteApp programs by configuring user group filters on the RD Collection. Use AppLocker on the RDSH server to prevent users from launching unauthorised executables beyond the published RemoteApp programs. Enable clipboard redirection selectively: allow text paste for productivity but disable file transfer via clipboard to prevent data exfiltration. Configure printer redirection policies to limit which printers are available in RemoteApp sessions. Test each RemoteApp under a standard user account before publishing to production users, as many applications have elevated privilege assumptions that fail in a multi-user session host context.

RemoteApp on Windows Server 2016 bridges the gap between traditional application management and modern virtualised delivery, providing a seamless, maintainable, and cost-effective solution for application publishing across an organisation.