rss logo

How set up a Windows RDS Farm

Microsoft logo

Nowadays, it's quite common to see RDS environments in companies. Generally speaking, for small organizations (fewer than 30 users), a single server is sufficient. However, in the case of larger numbers of simultaneous users, performance issues may arise despite increasing hardware resources. Upgrading the architecture as the number of users increases can also prove complicated.

Therefore, if you want to implement a scalable solution capable of handling a significantly high number of simultaneous connections, it becomes necessary to set up an RDS Farm. This involves separation of various services (broker, license server, session host, etc.…) on several servers. It also allows you to create a pool of RD Session Host servers to distribute the user load among the various hosts. In the following article, we'll explore this setup in detail.

RDS Farm Architecture

Here's the architecture that we'll be implementing.

Diagram showing RDS Farm architecture with user profiles, RD Session Hosts, RDS Connection Broker, and RDS Clients, including IP addresses and server names.
RDS Farm Architecture.

Install (broker.std.local)

We can install our RDS architecture from the PowerShell command line or from the graphical interface.

Install from the GUI

Add servers to manage

  • In Server Manager, right-click on All Servers > Add Servers:
Screenshot of Server Manager interface showing the option to add servers under the 'All Servers' menu.
  • Add Servers:
Screenshot showing the process of adding servers from Active Directory in Server Manager, including selecting and moving servers to the selected list.

Install

  • Also from Server Manager, go to Manage > Add Roles and Features:
Screenshot of Server Manager showing the option to add roles and features from the 'Manage' menu on the local server properties page.
  • In the first window, click Next:
Screenshot of the 'Before You Begin' page in the Add Roles and Features Wizard, with instructions and the 'Next' button highlighted.
  • Select Remote Desktop Services installation:
Screenshot of the Add Roles and Features Wizard, showing the selection of the Remote Desktop Services installation type, with the 'Next' button highlighted.
  • Select Standard deployment:
Screenshot of the Add Roles and Features Wizard, showing the selection of the standard deployment type for Remote Desktop Services, with the 'Next' button highlighted.
  • Select Session-based dektop deployment:
Screenshot of the Add Roles and Features Wizard, showing the selection of the session-based desktop deployment scenario for Remote Desktop Services, with the 'Next' button highlighted.
  • In the Roles Services step, simply click on Next:
Screenshot of the Add Roles and Features Wizard, showing a review of selected role services for Remote Desktop Services, with the 'Next' button highlighted.
  • Add broker server:
Screenshot of the Add Roles and Features Wizard, showing the selection of the server for the Connection Broker role, with an arrow indicating the server being added and the 'Next' button highlighted.
  • Also add the broker server as RD Web Access server:
Screenshot of the Add Roles and Features Wizard, showing the selection of the server for the Remote Desktop Web Access role, with an arrow indicating the server being added and the 'Next' button highlighted.
  • Now add the RDS servers as Hosts servers:
Screenshot of the Add Roles and Features Wizard, showing the selection of the Remote Desktop Session Host servers, with an arrow indicating the server being added and the 'Next' button highlighted.
  • Check the Restart the destination box and click on Deploy to install:
Screenshot of the Add Roles and Features Wizard, showing the confirmation of selected roles and the option to automatically restart the destination server, with the 'Deploy' button highlighted.

Install with PowerShell

  • Install RDS Services with this PowerShell command:
PS C:\> Add-WindowsFeature -Name RDS-Connection-Broker,RDS-Licensing,RDS-RD-Server -IncludeManagementTools -Restart
  • Then deploy via PowerShell:
PS C:\> Import-Module RemoteDesktop PS C:\> New-RDSessionDeployment -ConnectionBroker broker.std.local -WebAccessServer broker.std.local -SessionHost rds01.std.local

Post-Install

Once installation is complete, we need to configure our RDS farm.

RD Licensing (broker.std.local)

  • In Server Manager, go to Remote Desktop Services > Overview and click on RD Licensing icon to add a Licensing Server:
Screenshot of the Server Manager's Remote Desktop Services overview page, highlighting the option to add a License Manager with an arrow pointing to it.
  • Select the broker server as the RD Licensing server:
Screenshot of the Add License Manager Wizard for Remote Desktop Services, showing the selection of a server from the pool, with an arrow indicating the server being added and the 'Next' button highlighted.
  • Click on Add:
Screenshot of the Add License Manager Wizard for Remote Desktop Services, showing the confirmation of selections with the 'Add' button highlighted.
  • Finally, click on Close:
Screenshot of the Add License Manager Wizard for Remote Desktop Services, showing the installation progress with the 'Close' button highlighted.

Adding RD Session Host Servers

  • In the Deployment Overview window, right-click on RD Session Host and click on Add RD Session Servers:
Screenshot of the Remote Desktop Services deployment overview, showing the option to add session host servers highlighted.
  • Add the other RDS servers:
Screenshot of the Add Session Host Wizard for Remote Desktop Services, showing the selection of RDS02 and RDS03 servers from the pool, with an arrow indicating the servers being added and the 'Next' button highlighted.
  • Check the Restart remote computers box and click on Add:
Screenshot of the Add Session Host Wizard for Remote Desktop Services, showing the confirmation of selected servers RDS02 and RDS03 with the option to restart remote computers if necessary, and the 'Add' button highlighted.
  • Once the installation is complete, we can close the window:
Screenshot of the Add Session Host Wizard for Remote Desktop Services, showing the installation progress with successful status for RDS02 and RDS03 servers, and the 'Close' button highlighted.

Setting up Users Profiles Share (rdsprofiles.std.local)

  • Right-click on the User_Profiles folder and go to Properties:
Screenshot of a Windows Explorer window showing the right-click context menu on the 'User_Profiles' folder, with the 'Properties' option highlighted.
  • Then set up sharing as shown here:
Screenshot showing the process of setting up folder sharing in Windows, including selecting the 'Share' button, choosing users and permission levels, and confirming that the folder is shared, with the 'Done' button highlighted.

Create Collection

  • In the Deployment Overview, right-click on the RD Session Host and click on Create Session Collection:
Screenshot of the Remote Desktop Services deployment overview, highlighting the option to 'Create Session Collection' in the RD Session Host section.
  • Click on Next:
Screenshot of the 'Create Collection' wizard, showing the 'Before You Begin' page with instructions and the 'Next' button highlighted.
  • Give the RDS Collection a name:
Screenshot of the 'Create Collection' wizard, showing the 'Collection Name' page where 'RDSFarm' is entered as the name, with the 'Next' button highlighted.
  • Add RDS Servers to the Collection:
Screenshot of the 'Create Collection' wizard, showing the selection of RD Session Host servers (RDS01, RDS02, and RDS03) from the server pool, with an arrow indicating the servers being added and the 'Next' button highlighted.
  • Specify which user groups should connect to the RDS farm:
Screenshot of the 'Create Collection' wizard, showing the 'User Groups' page where 'STD\Domain Users' is specified, with the 'Next' button highlighted.
  • Specify the folder share we previously configured on the RDSPROFILES server:
Screenshot of the 'Create Collection' wizard, showing the 'User Profile Disks' page with the location set to '\\rdsprofiles\User_Profiles' and the 'Next' button highlighted.
  • Click on Create to confirm:
Screenshot of the 'Create Collection' wizard, showing the 'Confirmation' page with details of the collection name, user groups, session host servers, and user profile disks, with the 'Create' button highlighted.
  • Finally, click on Close when all operations have been completed:
Screenshot of the 'Create Collection' wizard, showing the 'View Progress' page with successful status for creating the collection and adding servers, with the 'Close' button highlighted.

Add DNS entry (AD Server)

⚠️Note that the new host name must be the same as the previously defined collection name. In this example: RDSfarm⚠️
  • Open the DNS Manager console from an Active Directory server:
Screenshot of the Windows 'Run' dialog box with 'dnsmgmt.msc' entered, and the 'OK' button highlighted.
  • From the domain zone, add new Host (A) DNS entries:
Screenshot of the DNS Manager window, showing the context menu with the option 'New Host (A or AAAA)' highlighted under the 'std.local' domain.
  • For example, with three RDS Session Hosts:
Screenshot of the 'New Host' dialog box in DNS Manager, showing the configuration of multiple IP addresses for 'rdsfarm.std.local', with the 'Add Host' button highlighted.

Alternative to the DNS Entry method (Client)

There is another way to informing the server of the collection to which we want to connect. It involves customizing an RDP icon. The easiest way to do this is to edit an RDP file with Notepad.

Screenshot of Notepad displaying the contents of a 'Default.rdp' file on the desktop, showing various RDP configuration settings.

Once open, check wether you already have lines containing: "loadbalanceinfo," "full address," "gatewayhostname," "use redirection server name," or "alternate full address." If so, delete these lines.

  • Next, add the following lines and update the information with your own server and collection names:
loadbalanceinfo:s:tsv://MS Terminal Services Plugin.1.RDSFarm full address:s:broker.std.local gatewayhostname:s:broker.std.local use redirection server name:i:1 alternate full address:s:broker.std.local

Save the modified file and open the RDP icon.

Client Connection

With DNS entry

  • The client will use the dns rdsfarm entry to connect to one of the RDS Session Hosts:
Screenshot of the Remote Desktop Connection window, with 'rdsfarm.std.local' entered in the 'Computer' field and the 'Connect' button highlighted.

Alternative, without DNS entry

  • The client will use the RDP icon created earlier to connect to one of the RDS Session Hosts:
Screenshot of the Remote Desktop Connection window, with 'broker.std.local' entered in the 'Computer' field and the 'Connect' button visible.

Force connection to a specific RDS host

As explained above, the broker's job is to distribute users randomly among the various session host servers. The aim is to balance the load of all user sessions. However, as an administrateur, for example when installing new software, it can be useful to be able to choose which server to connect to. The architecture of the ferme RDS makes this possible.

  • Let's imagine we want to connect to the RDS02, whose IP address is 192.168.1.201. In the run window of a Windows PC, enter the following command:
mstsc /v:192.168.1.201 /admin Screenshot of the Windows 'Run' dialog box with 'mstsc /v:192.168.1.201 /admin' entered, and the 'OK' button highlighted.
Creative Commons License
This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.

Contact :

contact mail address