Назад | Перейти на главную страницу

Как ограничить пользователя одним сеансом на терминальных серверах Windows

У меня есть два терминальных сервера Windows 2008 R2, и я предоставил пользователям доступ к обоим серверам, чтобы сохранить избыточность / распределение нагрузки.
Как запретить пользователям входить в систему на обоих серверах одновременно?

  1. Настроить NLB-кластер для серверов.

  2. Настроить Брокер сеанса

  3. Включите параметр GPO «Ограничить пользователей служб терминалов одним удаленным сеансом» в объекте групповой политики, который применяется к серверам.

Эти три вещи, работая вместе, достигнут вашей цели.

Если оба сервера находятся в домене, вам следует настроить Брокер подключения к удаленному рабочему столу и сделать Ферма серверов удаленных рабочих столов

Работа брокера заключается в перенаправлении пользователей в основном на бесплатные серверы. Это не «слабое звено». Процесс подключения выглядит так:

  • Пользователь узнает IP-адрес по DNS-имени. Это DNS-имя связано со всеми серверами в вашей ферме, поэтому вам необходимо создать эти DNS-записи вручную с небольшим TTL - около 5 минут. Так что у вас будут такие секреты, как

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

Из того, что вы описали, похоже, нет ничего, что могло бы помешать всем пользователям одновременно входить на любой из серверов. Это, конечно, не обеспечит разделение нагрузки. Разрешите каждому пользователю входить только на один сервер, а не позволяйте пользователю выбирать один. Чтобы исключить возможность отказа любого сервера, вы также можете создать три сценария, которые будут запускаться по мере необходимости.

  1. Настройте все учетные записи пользователей для входа на сервер A
  2. Настройте все учетные записи пользователей для входа на сервер B
  3. Установите учетные записи пользователей, распределенные по серверам, возможно, используя список того, кто назначен на какой сервер