Сервер узла сеансов RDP работает в режиме стока (drain mode)
- Как выглядит ошибка с ID 1070
- Что такое режим стока (drain mode)
- Как включать или выключать режим стока (Drain Mode)
- Активация режима стока в RDS ферме
- Активация режима стока в Windows Server 2008 R2
- Управление режимом стока, через командную стоку
- Управление режимом стока, через PowerShell
- Как массово перевести хосты RDSH в Drain Mode
Доброго времени суток, многоуважаемые читатели и гости, крупнейшего IT блога Рунета Pyatilistnik.org. Продолжаем с вами познавать азы траблшутинга в технологиях терминальных служб. Умение быстро находить проблему и ее устранять, отличает мотерого админа от зеленого юнца, за это он и получает больше. Сегодня я хочу с вами поговорить про ошибку ID 1070 "Запрос на вход в систему отклонен, так как сейчас сервер узла сеансов удаленных рабочих столов работает в режиме стока". В результате чего пользователи не могут подключиться к терминальной ферме. Давайте разбираться, что это за режим стока, как его отключить, дабы восстановить работу инфраструктуры.
Как выглядит ошибка с ID 1070
Есть пользователи, которые испытывают проблему с подключением по RDP к RDS ферме, но не все. Если вы зайдете в журнал событий Windows на вашем сервере терминалов, вы как администратор можете обнаружить вот такое событие:
В английском варианте, это звучит вот так:
Что такое режим стока (drain mode)
Что же из себя представляет режим стока (drain mode), когда вы поднимаете терминальную ферму или RDS ферму, то вы прекрасно знаете, что основной ее задачей является, это удаленное подключение пользователей к мощным серверам. которые являются частью некоторого пула. На этих серверах люди запускают привычные, офисные приложения, такие как 1С или Directum. Данная структура удобнее для администрирования, так как все находится централизовано под управлением системного администратора, и он обновляет необходимый программный продукт на сервере, а не бегает по всем клиентам и ставит по отдельности, это только в шарашкиных конторах, для терминалов выделяют обычные системные блоки, экономя так сказать на спичках.
Напомню вам схему работы RDS фермы. Тут есть посредник (RD Connection Broker), которые перераспределяет подключения на узлы удаленных рабочих столов (RD Session Host). Предположим, что вам нужно произвести сервисное обслуживание на одном из узлов подключения, где непосредственно работают пользователи, логично, что это нужно делать тогда, когда пользователи там не работают.
Режим стока (drain mode), при его активации на узле удаленного подключения, запрещает к нему новые подключения, но разрешает работу и повторное подключение ранее работавшим активным сессиям, а посредник подключений (RD Connection Broker), уже в свою очередь, перенаправляет новые подключения на активные хосты. В нормальной схеме работы RDS фермы, должны быть два посредника подключений (RD Connection Broker), находящиеся в режиме отказоустойчивой работы и как раз на них, режим стока нужно включать, чтобы люди на них не подключались с RDP сессиями, задача посредника, это балансировка нагрузки и распределение количества удаленных подключений по хостам RDS фермы.
В заметке, как управлять RDS фермой я вам показывал, что посредники подключений, так же имеют на себе роль узлов подключений, иначе RDS не будет работать, но для брокеров, режим стока всегда включен, на них по RDP могут подключаться, только администраторы. Выглядит это вот так, где два верхних узла, несут роль (посредника подключений (RD Connection Broker)) и режим работы новых подключений "Ложь (False)", поэтому предупреждение ID 1070, на брокерах можно спокойно игнорировать.
Как включать или выключать режим стока (Drain Mode)
Управлять режимом стока можно разными методами:
- Через командную строку и утилиту chglogon.exe
- Через графический интерфейс, с использованием оснасток Windows
- Через PowerShell
Активация режима стока в RDS ферме
Соберите в "Диспетчере сервера" вашу RDS ферму, чтобы активировать режим "Drain mode" на нужном вам узле подключения, щелкните в области "Серверы узлов" по нужному хосту, правым кликом и выберите пункт "Не разрешать новые подключения", все работающие пользователи по прежнему смогут к нему подключаться, но если они сделают "Выход из системы", то в следующий раз уже будут перенаправлены на другого участника фермы.
Вывести сервер из режима стока, можно так же, но уже выбрать пункт "Разрешить новые подключения"
Активация режима стока в Windows Server 2008 R2
В Windows Server 2008 R2, интерфейс совершенно другой, и для выключения и выключения режима "Drain Mode", вам нужно открывать оснастку "Конфигурация узлов сеансов удаленных рабочих столов". В разделе "Изменить параметры" выберите пункт "Режим входа в систему", по умолчанию там должно стоять "Разрешить все подключения", что говорит, о том, что режим стока на данный момент выключен.
В открывшемся окне, вам нужно обратить внимание на вот эти три пункта:
- Разрешить все подключение - как я и писал выше, это деактивация режима стока (drain mode)
- Разрешить переподключения, но запретить новые попытки входа, это "Drain mode" в жестком режиме
- Разрешить переподключения, но запретить новые попытки входа до перезагрузки сервера
Управление режимом стока, через командную стоку
Как я и писал выше, есть утилита командной строки chglogon.exe. Зайдите на нужный вам узел подключений и откройте на нем от имени администратора окно cmd. Введите команду chglogon.exe. У вас откроется справка по утилите и вы увидите доступные режима стока для управления сеансами RDS фермы.
- /QUERY - Опрос текущего режима входа сеанса.
- /ENABLE - Включение входа пользователя из сеанса.
- /DISABLE - Отключение входа пользователей из сеансов.
- /DRAIN - Запрещает входить в систему новым пользователям, но разрешает повторное подключение к существующим сеансам.
- /DRAINUNTILRESTART - Запрещает входить в систему новым пользователям до перезагрузки сервера, но разрешает повторное подключение к существующим сеансам.
- Чтобы временно настроить сервер в режим слива, используйте параметр / DRAIN.
- Чтобы временно настроить сервер в режим слива, используйте параметр / DRAINUNTILRESTART. После перезапуска пользовательские учетные записи будут автоматически перезапущены.
- Чтобы вывести сервер из режима слива и восстановить подключение, используйте параметр / 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)
Как массово перевести хосты 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"
}
На этом все, надеюсь, что я смог вам подробно описать назначение режима стока в технологиях RDS ферм и терминальных столов, а с вами был Иван Семин, автор и создатель, одного из крупнейших IT блогов рунета Pyatilistnik.org.
Почему иногда узлы переходят в режим стока?
Сами не могут переходить, у вас либо скрипт какой отрабатывает или еще что-то. Нужно изучать логи.
спасибо большое помогло