У меня есть два терминальных сервера Windows 2008 R2, и я предоставил пользователям доступ к обоим серверам, чтобы сохранить избыточность / распределение нагрузки.
Как запретить пользователям входить в систему на обоих серверах одновременно?
Настроить NLB-кластер для серверов.
Настроить Брокер сеанса
Включите параметр GPO «Ограничить пользователей служб терминалов одним удаленным сеансом» в объекте групповой политики, который применяется к серверам.
Эти три вещи, работая вместе, достигнут вашей цели.
Если оба сервера находятся в домене, вам следует настроить Брокер подключения к удаленному рабочему столу и сделать Ферма серверов удаленных рабочих столов
Работа брокера заключается в перенаправлении пользователей в основном на бесплатные серверы. Это не «слабое звено». Процесс подключения выглядит так:
TERMINAL-FARM 172.16.16.1
TERMINAL-FARM 172.16.16.2
TERMINAL-FARM 172.16.16.3
etc
- Сервер RDS спрашивает брокера, нужно ли ему перенаправить этого пользователя на другой сервер. Если брокер не работает, он просто принимает соединение и работает так, как будто сервер не является членом фермы.
Брокер проверяет, есть ли у пользователя уже открытый сеанс на любом сервере RDS, входящем в ферму. Если это так, он сообщает RDS перенаправить пользователя на этот сервер. Затем Брокер ищет все серверы RDS. LoadIndicator
* и сообщает серверу RDS перенаправить пользователя или принять соединение.
Если Брокер сказал серверу RDS переместить пользователя на другой сервер, сервер RDS отвечает пользователю на переход для подключения к другому IP-адресу (при перенаправлении используются IP-адреса, а не DNS-имена)
Клиент RDP повторно подключается к серверу, к которому ему было сказано подключиться. Если клиент использует шифрование RDP, то у него снова запрашивают пароль, если шифрование TLS, то пользователь аутентифицируется автоматически.
LoadIndicator
- числовое значение для каждого сервера в ферме. Обычный вычисляется по формуле LoadIndicator = (ServerWeight * ( LoggedOnUsers + PendingRedirections))
. Если сервер находится в Drain mode
, LoadIndicator
имеет очень большое значение (я думаю, 65535), поэтому соединения никогда не перенаправляются на сервер в Drain mode
Из того, что вы описали, похоже, нет ничего, что могло бы помешать всем пользователям одновременно входить на любой из серверов. Это, конечно, не обеспечит разделение нагрузки. Разрешите каждому пользователю входить только на один сервер, а не позволяйте пользователю выбирать один. Чтобы исключить возможность отказа любого сервера, вы также можете создать три сценария, которые будут запускаться по мере необходимости.