The setup of Remote Desktop Services in Windows Server 2012 comprises of 6 component services:
- Remote Desktop Services Virtualisation Host – This is the VDI setup for 2012, enabling the terminal server to host multiple Windows client VMs
- Remote Desktop Services Session Host – This is the Terminal Server, as it was traditionally known
- Remote Desktop Services RemoteApp (Web Access) – This service enables users to launch published applications on the terminal server as if they were ran from their local machines
- Remote Desktop Services Session Broker – This is a load balancing service which directs users to the appropriate RDS service (Session host, RemoteApp or VDI / Virtualisation Host)
- Remote Desktop Services Licensing Server – This handles the licensing for RDS 2012
The first thing to do when you are looking to setup Remote Desktop Services 2012, is to plan how many servers you need, how you want to spread out the Remote Desktop Services, which Remote Desktop Services you want to use and whether you want to do any clustering / load balancing. This article doesn’t cover this planning stage or best practices, it just provides a step by step tutorial depicting how to setup Remote Desktop Services on Windows Server 2012.
This tutorial assumes that you are using a total of 3 servers, one of which will be taking care of Remote Desktop Licensing and the Remote Desktop Services Broker service and the other two acting as load balanced Terminal Servers (Serving Remote Desktop Session Host services, one of which will be the RemoteApp server).
Installing Remote Desktop Services on Windows Server 2012
Here’s my step by step guide for installing a Remote Desktop Services infrastructure on Windows Server 2012.
- Install Windows Server 2012 on 3 servers, give each a static IP address, a name, join them to the domain and activate them (I won’t go into any more detail than that, this is a step by step guide, not an idiots guide )
- From Windows Server 2012 Server Manager (Running on any machine), add the 3 servers (Right click Servers -> Add Servers and follow the process)
- In Windows Server 2012 Server Manager, on each terminal server (RD Session Host) enable remote desktop and Allow remote connections to this computer (Selecting users and adding the AD security group of users that you would like to allow RDP access to)
- In Windows Server 2012 Server Manager, click Add Role and choose Remote Desktop Services Installation -> Standard Deployment -> Session-based desktop -> Next. You can install the requires services by simply adding the roles, but be warned – you get unexpected results and things missing in the Server Manager later on 😕 This one is a bit of a gotcha
- The next part of the installation will ask you which server you would like to install the RD Session Broker on, select the appropriate server from the list. You can only choose one server. If you would like to have a highly available RD Session Broker server, then you can do so but are required to either use something like VMware HA or a windows cluster with a SQL server for the RD Session Broker database (This is out of the scope of this article, but the place to start looking would be by right clicking the RD broker after the Remote Desktop Services 2012 setup has finished and configure RD Broker to be highly available…)
- After this, Remote Desktop Services 2012 setup will ask which server you would like to install the RD Web Access (RemoteApp) services on, select the appropriate Terminal Server from the list. You can only choose one server
- Then setup will ask you to choose 1 or more Session Host servers, do so.
- Click Next and put a tick in the Restart destination computers if required checkbox then click Deploy to start the installation of Remote Desktop Services 2012
- Connect Windows Server 2012 Server Managerto the server that has RD Session Broker installed onto it. You will see the following error:
The following servers in this deployment are not part of the server pool:
The servers must be added to the server pool.
- There’s actually a gotcha here, whereby the server’s do not perform the last reboot that is required after installing the services, so reboot each server next
- Next connect to the Server Manager on the RD Connection Broker server and click on Remote Desktop Services. It will take a while to populate this info and you may need to switch between the Dashboard view and the Remote Desktop Services view a few times to get it to populate the first time. It just takes a while and there’s nothing to let you know that you’re waiting for it to appear
- Next, click on the picture of the + sign on the diagram to add an RD Licensing Server and follow the steps to add your RD Licensing Server before rebooting.
- Reconnect to the Server Manager on the RD Connection Broker server and click on Remote Desktop Services again
- Next, right click the RD Session Host picture in the same diagram and click Create Session Collection
- Follow the setup to create a Session Collection, adding the two Terminal Servers (You will be using the name of the Session Collection in DNS, so make sure it’s available). Note: I didn’t bother creating aUser Profile Disk, because the users are using Terminal Server Roaming Profiles
- Create an A record in DNS with the name of the Session Collection you just created for each RD Session Host (Terminal Server) added to the Session Collection. Users will use this DNS record to connect to the load balanced RD Session Hosts (Terminal Server farm)
- You now need to activate your RD Licensing Server or migrate your remote desktop licenses to the new RD Licensing Server
- Once this is done, you need to add the RD Licensing Server to the Terminal Server License Servers group in Active Directory Domain Services before installing any applications the users require on the terminal server and setup any required group policies to lock the server down
- If you want to setup RD Web Access (RemoteApp), then you can do so from the 2012 Server Manager, under Remote Desktop Services and clicking on the Session Collection you created in step 15 then clicking on Publish RemoteApp programs and following the wizard.