- Windows server drain mode
- Описание ситуации
- Как решается проблема
- Windows server drain mode
- Сервер узла сеансов RDP работает в режиме стока (drain mode)
- Как выглядит ошибка с ID 1070
- Что такое режим стока (drain mode)
- Как включать или выключать режим стока (Drain Mode)
- Активация режима стока в RDS ферме
- Активация режима стока в Windows Server 2008 R2
- Управление режимом стока, через командную стоку
- Управление режимом стока, через PowerShell
- Terminal Services Server Drain mode
- Настройка режима User Logon Mode
Windows server drain mode
Добрый день! Уважаемые читатели и гости одного из крупнейших IT блогов по системному администрированию Pyatilistnik.org. В прошлый раз мы с вами разобрали, как создать изолированный терминальный стол в рамках одного сервера. В сегодняшней статья я вам хочу показать интересную ситуацию при которой один из серверов в коллекции RDS сервера не переходит в режим стока и не закрывает новые подключения. Давайте разбираться в чем дело.
Описание ситуации
И так у меня в организации есть RDS ферма из 20 хостов на базе Windows Server 2012 R2. Ранее я вам рассказывал, что если нужно произвести обслуживание нужного RDSH хоста, вам необходимо его было перевести в режим стока (Drain Mode). Вроде бы операция рядовая, но в этот раз у меня выскочила ошибка:
Как решается проблема
Первое, что нужно сделать, это провести небольшую диагностику. Первым делом я полез в настройки коллекции RDS фермы, ранее я рассказывал как собирается такая консоль управления. Открываем коллекцию сеансов, меня привлекло на вкладке «Балансировка параметров балансировки нагрузки«, что у нужного хоста в столбце памяти стоит «0», у других показаны нормальные значения.
У меня еще была удобная утилита для управления RDSH хостами Terminal Services Manager, и в ней я увидел причину:
Удаленный вызов процедур (RPC) — это механизм, который позволяет процессам Windows взаимодействовать друг с другом как между клиентом и сервером по сети, так и в рамках одной системы. Множество встроенных компонентов Windows используют RPC. RPC использует динамические порты для взаимодействия между системами, но статический порт (TCP-порт 135) также должен использоваться как начальная точка взаимодействия. Данный статический порт прослушивает сопоставителя конечных точек RPC.
Самое интересное, что в данный момент на сервере работали пользователи и мне нужно было в ручную закрыть новые подключения к данному серверу, ввести его в режим стока. Для этого можно воспользоваться настройкой в реестре Windows. Через окно «Выполнить» откройте regedit и перейдите в раздел:
Если у ключа TSServerDrainMod стоит значение «0», то у него нет ограничений на подключение, если вы выставите «2», то включите режим стока (Drain Mode).
Далее вы ждете когда у вас все пользовательские сеансы будут отключены, не забывайте настраивать временные лимиты на подключения к RDSH хостам. Пробуем перезагрузить ваш сервер, в подавляющем количестве случаев это решает проблему с переводом сервера в режим стока. В итоге я вижу, что сервер стал отображать правильно подключения и ресурсы. В оснастке управления RDS серверами, все успешно отработало и ошибка «Не удалось изменить состояние подключения для сервера» исчезла.
Хочу напомнить, чтобы у вас были работающие службы:
- DcomLaunch — Модуль запуска процессов DCOM-сервера
- RpcEptMapper — Сопоставитель конечных точек RPC
- RpcLocator — Локатор удаленного вызова процедур (RPC)
- RpcSs — Удаленный вызов процедур (RPC)
- WiaRpd — События получения неподвижных изображений
Далее ели подключений все нет и вы не можете из оснастке перевести хост в режим стока, то проверьте, доступен ли у вас порт 135. Как проверять открытые порты я уже рассказывал, посмотрите. Далее советую вам проверить, что на сетевом интерфейсе у вас выставлены галки:
- Служба доступа к файлам и принтерам сетей Microsoft
- Протокол Интернета версии 6 (TCP/IPv6)
Windows server drain mode
Сервер узла сеансов RDP работает в режиме стока (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. Для этого есть вот такие командлеты:
Terminal Services Server Drain mode
Называемый в Windows Server 2008 режимом «Terminal Services Server Drain mode» — это то, что следует конфигурировать на сервере RD Session Host для предотвращения открытия новых пользовательских сеансов. В число причин, по которым это может понадобиться администратору, входит плановое отключение сервера для обслуживания или установка новых приложений. В Windows Server 2008 R2 это называется User Logon Mode (Режим входа пользователя) и для него допускаются следующие варианты.
- Allow All Connections (Разрешить все подключения). Режим по умолчанию, который позволяет пользователям удаленно переподключаться к серверу RD Session Host.
- Allow Reconnections, but Prevent New Logons (Разрешать переподключения, но запретить новые входы). Когда выбран этот режим, пользователи не могут создавать новых сеансов на сервере RD Session Host. Однако пользователи, у которых уже есть запущенный сеанс, продолжают в нем работать, и даже могут к нему переподключаться. Как только сервер RD Session Host будет перезагружен, ни один пользователь не сможет подключиться к нему.
- Allow Reconnections, but Prevent New Logons Until the Server Is Restarted (Разрешить переподключения, но запретить новые входы, пока сервер не будет перезагружен). При выборе этого режима пользователи, имеющие удаленные сеансы, могут подключаться к серверу RD Session Host. Однако новые пользователи без сеансов не смогут открывать новые сеансы. Как только сервер будет перезагружен, режим User Logon сбрасывается в Allow All Connections.
Настройка режима User Logon Mode
Для конфигурирования режима User Logon Mode на сервере RD Session Host выполните перечисленные ниже шаги.
- Откройте инструмент Remote Desktop Session Host Configuration (Конфигурирование узла сеансов удаленных рабочих столов), выбрав в меню Start (Пуск) пункт Administrative Tools^Remote Desktop Services (Администрирование^Службы удаленных рабочих столов) и затем дважды щелкните на значке Remote Desktop Session Host Configuration (Конфигурирование узла сеансов удаленных рабочих столов).
- В области Edit Settings (Редактировать настройки) дважды щелкните на параметре User Logon Mode (Режим входа пользователей).
- На вкладке General (Общие) диалогового окна Properties (Свойства) выберите желаемый режим входа пользователя.
Кроме того, режим входа пользователей можно конфигурировать из командной строки:
- change logon /drain — после выполнения этой команды новые пользователи не могут войти в эту систему;
- change logon /drainuntilrestart — после перезапуска сервера все пользовательские входы будут автоматически восстановлены;
- change logon /enable — вход пользователям разрешен.