Server Fault is a question and answer site for system and network administrators. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I have two windows 2008 R2 Terminal servers and have given users access to both server to keep redundancy/ load sharing.
How to restrict users from logging on both servers at same time?

share|improve this question
Are these servers identically configured? If so, have you considered putting them into a farm? The remote desktop session broker service will ensure that users have at most one logged on session. – Michael Steele Nov 30 '12 at 23:46
  1. Setup an NLB cluster for the servers.

  2. Set up Session Broker

  3. Enable the GPO setting "Restrict Terminal Services users to a single remote session" in the GPO that applies to the servers.

These three things working together will accomplish your goal.

share|improve this answer
will the session broker become the weak link? – Mani Nov 6 '12 at 14:42
What do you mean "weak link"? – joeqwerty Nov 6 '12 at 14:46

From what you have described there appears to be nothing to stop all the users simultaneously logging onto either server. That would of course not provide load sharing. Consider allowing each user to log onto only one server, rather then letting the user choose one. To cover the possibility of either server going down you could also create three scripts, to be run as required.

  1. Set all user accounts to log onto server A
  2. Set all user accounts to log onto server B
  3. Set user accounts spread across the servers, perhaps using a list of who is assigned to which server
share|improve this answer

If both servers are in domain, you should set up the Remote Desktop Conection Broker and make a Remote Desktop Server Farm

The Broker's work is to forward users to mostly free servers. It is not a 'weak link'. The connection process goes like this:

  • User discovers IP address from DNS name. This DNS name is associated with all servers in your farm, so, you need to create those DNS records manually with small TTL - about 5 mins. So you will have secords like

TERMINAL-FARM TERMINAL-FARM TERMINAL-FARM etc - The RDS server asks Broker if he need to redirect this user to other server. If the broker is down, it just accepts the connection and works like server is not farm member

  • Broker looks up if user already have session opened on any farm membet RDS server. If so, it tells RDS to redirect user to this server. Then Broker looks up for all RDS servers' LoadIndicator* and tells RDS server to redirect user or to accept the connection.

  • If Broker told RDS server to move user to other server, the RDS server responses user to switch to connect to another IP-address (when redirecting, IP addresses are used, not DNS names)

  • The RDP client reconnects to the server that it was told to connect to. If client uses RDP encryption, then he is asked for password again, if TLS encryption, then user authenticates automatically.

LoadIndicator is a numeric value for each server in farm. Ordinary is computed by formula LoadIndicator = (ServerWeight * ( LoggedOnUsers + PendingRedirections)). If server is in Drain mode, LoadIndicator has a very big value (65535 I think), so connections are never redirected to server in Drain mode

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.