如何限制用户在Windowsterminal服务器上有单个会话

我有两个Windows 2008 R2terminal服务器,并已授予用户访问这两个服务器,以保持冗余/负载分享。
如何限制用户同时login两台服务器?

  1. 为服务器设置一个NLB群集 。

  2. 设置会话代理

  3. 在适用于服务器的GPO中启用GPO设置“限制terminal服务用户到单个远程会话”。

这三件事情一起工作将实现你的目标。

从你所描述的,似乎没有什么能够阻止所有的用户同时login到任何一台服务器上。 那当然不会提供负载分配。 考虑允许每个用户只login一个服务器,而不是让用户select一个。 要覆盖任何一台服务器closures的可能性,您还可以创build三个脚本,以便根据需要运行。

  1. 设置所有用户帐户login到服务器A上
  2. 设置所有用户帐户login到服务器B上
  3. 设置跨服务器分布的用户帐户,也许使用谁分配给哪个服务器的列表

如果两台服务器都在域中,则应设置远程桌面连接代理并创build远程桌面服务器场

经纪人的工作是转发用户大部分免费的服务器。 这不是一个“薄弱环节”。 连接过程如下所示:

  • 用户从DNS名称中发现IP地址。 此DNS名称与服务器场中的所有服务器相​​关联,因此,您需要手动创build具有小型TTL的DNSlogging – 大约5分钟。 所以你会有像这样的东西

TERMINAL-FARM 172.16.16.1 TERMINAL-FARM 172.16.16.2 TERMINAL-FARM 172.16.16.3 etc – RDS服务器询问经纪商是否需要将该用户redirect到其他服务器。 如果代理closures,它只接受连接,并且像服务器不是农场成员那样工作

  • 代理查找用户是否已经在任何服务器场RDS服务器上打开了会话。 如果是这样,它会通知RDS将用户redirect到此服务器。 然后,Broker查找所有RDS服务器的LoadIndicator *,并通知RDS服务器redirect用户或接受连接。

  • 如果代理告诉RDS服务器将用户移动到其他服务器,则RDS服务器响应用户切换到连接到另一个IP地址(redirect时使用IP地址,而不是DNS名称)

  • RDP客户端重新连接到被告知要连接的服务器。 如果客户端使用RDPencryption,则再次要求他input密码,如果TLSencryption,则用户自动进行validation。

LoadIndicator是服务器场中每个服务器的数字值。 普通是通过公式LoadIndicator = (ServerWeight * ( LoggedOnUsers + PendingRedirections)) 。 如果服务器处于Drain modeLoadIndicator值非常大(65535我认为),所以在Drain mode连接永远不会redirect到服务器