Сервер узла сеансов RDP работает в режиме стока (drain mode)

Обновлено 19.05.2022

rdp logoДоброго времени суток, многоуважаемые читатели и гости, крупнейшего IT блога Рунета Pyatilistnik.org. Продолжаем с вами познавать азы траблшутинга в технологиях терминальных служб. Умение быстро находить проблему и ее устранять, отличает мотерого админа от зеленого юнца, за это он и получает больше. Сегодня я хочу с вами поговорить про ошибку ID 1070 "Запрос на вход в систему отклонен, так как сейчас сервер узла сеансов удаленных рабочих столов работает в режиме стока". В результате чего пользователи не могут подключиться к терминальной ферме. Давайте разбираться, что это за режим стока, как его отключить, дабы восстановить работу инфраструктуры.

Как выглядит ошибка с ID 1070

Есть пользователи, которые испытывают проблему с подключением по RDP к RDS ферме, но не все. Если вы зайдете в журнал событий Windows на вашем сервере терминалов, вы как администратор можете обнаружить вот такое событие:

ID 1070 Запрос на вход в систему отклонен, так как сейчас сервер узла сеансов удаленных рабочих столов работает в режиме стока и новые пользователи в систему не допускаются. Чтобы разрешить вход в систему новым пользователям, настройте сервер при помощи средства настройки служб удаленных рабочих столов

Код 1070

В английском варианте, это звучит вот так:

A logon request was denied because the RD Session Host server is currently in drain mode and therefore not accepting new user logons. To configure the server to allow new user logons, use the Remote Desktop Services Configuration tool.

event ID 1070

Что такое режим стока (drain mode)

Что же из себя представляет режим стока (drain mode), когда вы поднимаете терминальную ферму или RDS ферму, то вы прекрасно знаете, что основной ее задачей является, это удаленное подключение пользователей к мощным серверам. которые являются частью некоторого пула. На этих серверах люди запускают привычные, офисные приложения, такие как 1С или Directum. Данная структура удобнее для администрирования, так как все находится централизовано под управлением системного администратора, и он обновляет необходимый программный продукт на сервере, а не бегает по всем клиентам и ставит по отдельности, это только в шарашкиных конторах, для терминалов выделяют обычные системные блоки, экономя так сказать на спичках.

Напомню вам схему работы RDS фермы. Тут есть посредник (RD Connection Broker), которые перераспределяет подключения на узлы удаленных рабочих столов (RD Session Host). Предположим, что вам нужно произвести сервисное обслуживание на одном из узлов подключения, где непосредственно работают пользователи, логично, что это нужно делать тогда, когда пользователи там не работают.

rds ферма схема

Режим стока (drain mode), при его активации на узле удаленного подключения, запрещает к нему новые подключения, но разрешает работу и повторное подключение ранее работавшим активным сессиям, а посредник подключений (RD Connection Broker), уже в свою очередь, перенаправляет новые подключения на активные хосты. В нормальной схеме работы RDS фермы, должны быть два посредника подключений (RD Connection Broker), находящиеся в режиме отказоустойчивой работы и как раз на них, режим стока нужно включать, чтобы люди на них не подключались с RDP сессиями, задача посредника, это балансировка нагрузки и распределение количества удаленных подключений по хостам RDS фермы.

Схема Drain Mode

В заметке, как управлять RDS фермой я вам показывал, что посредники подключений, так же имеют на себе роль узлов подключений, иначе RDS не будет работать, но для брокеров, режим стока всегда включен, на них по RDP могут подключаться, только администраторы. Выглядит это вот так, где два верхних узла, несут роль (посредника подключений (RD Connection Broker)) и режим работы новых подключений "Ложь (False)", поэтому предупреждение ID 1070, на брокерах можно спокойно игнорировать.

Управление RDS фермой в Windows Server 2016

Как включать или выключать режим стока (Drain Mode)

Управлять режимом стока можно разными методами:

  • Через командную строку и утилиту chglogon.exe
  • Через графический интерфейс, с использованием оснасток Windows
  • Через PowerShell

Активация режима стока в RDS ферме

Соберите в "Диспетчере сервера" вашу RDS ферму, чтобы активировать режим "Drain mode" на нужном вам узле подключения, щелкните в области "Серверы узлов" по нужному хосту, правым кликом и выберите пункт "Не разрешать новые подключения", все работающие пользователи по прежнему смогут к нему подключаться, но если они сделают "Выход из системы", то в следующий раз уже будут перенаправлены на другого участника фермы.

включить drain mode в rds

Вывести сервер из режима стока, можно так же, но уже выбрать пункт "Разрешить новые подключения"

выключить drain mode в rds

Активация режима стока в Windows Server 2008 R2

В Windows Server 2008 R2, интерфейс совершенно другой, и для выключения и выключения режима "Drain Mode", вам нужно открывать оснастку "Конфигурация узлов сеансов удаленных рабочих столов". В разделе "Изменить параметры" выберите пункт "Режим входа в систему", по умолчанию там должно стоять "Разрешить все подключения", что говорит, о том, что режим стока на данный момент выключен.

Режим стока в Windows Server 2008 R2

В открывшемся окне, вам нужно обратить внимание на вот эти три пункта:

  • Разрешить все подключение - как я и писал выше, это деактивация режима стока (drain mode)
  • Разрешить переподключения, но запретить новые попытки входа, это "Drain mode" в жестком режиме
  •  Разрешить переподключения, но запретить новые попытки входа до перезагрузки сервера

Режим drain mode в Windows Server 2008 R2

Управление режимом стока, через командную стоку

Как я и писал выше, есть утилита командной строки chglogon.exe. Зайдите на нужный вам узел подключений и откройте на нем от имени администратора окно cmd. Введите команду chglogon.exe. У вас откроется справка по утилите и вы увидите доступные режима стока для управления сеансами RDS фермы.

  • /QUERY - Опрос текущего режима входа сеанса.
  • /ENABLE - Включение входа пользователя из сеанса.
  • /DISABLE - Отключение входа пользователей из сеансов.
  • /DRAIN - Запрещает входить в систему новым пользователям, но разрешает повторное подключение к существующим сеансам.
  • /DRAINUNTILRESTART - Запрещает входить в систему новым пользователям до перезагрузки сервера, но разрешает повторное подключение к существующим сеансам.

режимы слива

  1. Чтобы временно настроить сервер в режим слива, используйте параметр / DRAIN.
  2. Чтобы временно настроить сервер в режим слива, используйте параметр / DRAINUNTILRESTART. После перезапуска пользовательские учетные записи будут автоматически перезапущены.
  3. Чтобы вывести сервер из режима слива и восстановить подключение, используйте параметр / ENABLE

Управление режимом стока, через PowerShell

Все управление режимом стока в Windows Server, можно осуществлять и через оболочку PowerShell. Для этого есть вот такие командлеты:

Import-Module RemoteDesktop

Set-RDSessionHost -SessionHost "rdsh01.pyatilistnik.org" -NewConnectionAllowed No -ConnectionBroker "broker.pyatilistnik.org" (Команда запрещает новые подключения и включает режим Drain mode)

Set-RDSessionHost -SessionHost "rdsh02.pyatilistnik.org" -NewConnectionAllowed Yes -ConnectionBroker "broker.pyatilistnik.org" (Команда разрешает новые подключения и выключает режим Drain mode)

Дополнительную информацию по командлету Set-RDSessionHost можете посмотреть по ссылке https://docs.microsoft.com/en-us/powershell/module/remotedesktop/set-rdsessionhost?view=win10-ps

Управление режимом стока, через PowerShell

Как массово перевести хосты RDSH в Drain Mode

Когда у вас в RDS ферме много хостов RDSH, то вручную их переводить в Drain Mode очень по обезьяньи, для этого нужна автоматизация через PowerShell.

# Импортируем список серверов из файла
$servers = Get-Content "c:\Temp\termit.txt"

# Переводим или выводим из Drain Mode
foreach ($server in $servers)

{

Set-RDSessionHost -SessionHost $server -NewConnectionAllowed yes -ConnectionBroker "rdcb01.root.pyatilistnik.org"

}

Массовый перевод хостов в drain mode

На этом все, надеюсь, что я смог вам подробно описать назначение режима стока в технологиях RDS ферм и терминальных столов, а с вами был Иван Семин, автор и создатель, одного из крупнейших IT блогов рунета Pyatilistnik.org.

Автор - Сёмин Иван

3 Responses to Сервер узла сеансов RDP работает в режиме стока (drain mode)

  1. Василий:

    Почему иногда узлы переходят в режим стока?

  2. Иван Семин:

    Сами не могут переходить, у вас либо скрипт какой отрабатывает или еще что-то. Нужно изучать логи.

  3. человек:

    спасибо большое помогло

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *