Настройка лимитов (таймаутов) для RDP/RDS сессий в Windows
По-умолчанию, когда пользователь со своего компьютера закрывает окно своей RDP/RDS сессией в терминальном клиенте (mstsc, rdcman или rdp html web клиент) простым нажатием по крестику в окне, без выполнения выхода (logoff), его сессия переходит в режим disconnected (разъединённый сеанс). В этом режиме все запущенные пользователем программы, открытые документы и окна продолжают работать на удаленном сервере и потреблять ресурсы.
По-умолчанию в Windows RDP сессия пользователя может находится в состоянии disconnected до перезагрузки компьютера или явного ее завершения пользователем или администратором. Это довольно удобно, т.к. пользователь может в любой момент подключиться к своей старой сессии и продолжить работу с открытыми программами и документами.
На следующем скриншоте видно, что отключенные сессии пользователей на RDS сервере с Windows Server 2016 используют около 35% памяти сервера. Кроме того незавершенные сессии могут блокировать открытые файлы на файловых серверах, вызывать проблемы с корректным сохранением данных в приложениях, профилях или User Profile Disks.
С помощью команды quser можно узнать, когда начата RDP сессия пользователя, длительность простоя и статус сессии.
Для автоматического завершения отключенных RDP/RDS сессий через определенный промежуток времени, вам нужно правильно настроить лимиты (таймауты).
При использовании RDS сервера, вы можете настроить параметры таймаутов сессий в настройках RDS коллекций на вкладке Session.
Укажите время, через которое нужно завершить отключенный сеанс в параметре End a disconnected session (по умолчанию срок сеанса неограничен – never). Также вы можете выставить максимальную длительность активной RDP сессии (Active session limit) и отключение бездействующего сеанса (Idle session limit). Это жесткие таймауты применяются для всех сессий в RDS коллекции.
Также можно настроить ограничение времени RDP сессии в свойства локального (консоль lusrmgr.msc) или доменного пользователя (консоль dsa.msc — ADUC).
В Windows Server 2012 R2/2016/2019 можно настроить таймауты RDP сессий с помощью групповых политик. Можно использовать как редактор доменных GPO gpmc.msc, так и редактор локальных групповых политик (gpedit.msc) на конкретном RDS сервере или клиенте (если вы используете десктопную Windows в качестве терминального сервера)
Параметры таймаутов RDP сессий находятся в разделе GPO
Computer Configuration -> Policies -> Administrative Templates -> Windows Components -> Remote Desktop Services -> Remote Desktop Session Host -> Session Time Limits (Конфигурация компьютера -> Политики -> Административные шаблоны -> Компоненты Windows -> Службы удаленных рабочих столов -> Узел сеансов удаленных рабочих столов -> Ограничение сеансов по времени). Доступны следующие политики таймаутов:
- Set time limit for disconnected session (Задать ограничение по времени для отключенных сеансов)
- Set time limit for active but idle Remote Desktop Services sessions (Задать ограничение времени для активных, но бездействующих сеансов служб удаленных рабочих столов) – политика позволяет завершить простаивающие RDP сессии, в которых отсутствует ввод со стороны пользователя (движение мышкой, ввод символов с клавиатуры)
- Set time limit for active Remote Desktop Services sessions (Задать ограничение по времени для активных сеансов служб удаленных рабочих столов) – максимальный срок для любой (даже активной) RDP сессии пользователя, после которого она переводится в состояние disconnected;
- End Session when time limits are reached (Завершать сеанс при достижении ограничения по времени) – через какое время нужно завершать RDS сессию (logoff) вместо перевода ее в disconnected;
- Set time limit for logoff of RemoteApp sessions (Задать предел для выхода из сеансов RemoteApp)
По умолчанию эти параметры не настроены. Чтобы автоматически завершать отключенные RDP сеансы пользователей через 8 часов, включите политику “Set time limit for disconnected session” = Enabled, и в выпадающем списке выберите 8 часов.
Сохраните изменения и обновите политики сервера (gpupdate /force). Новые настройки таймаутов будут применяться только к новым RDP сеансам, текущие сеансы придется завершить вручную.
- MaxDisconnectionTime
- MaxIdleTime
- MaxConnectionTime
- MaxDisconnectionTime
- RemoteAppLogoffTimeLimit
Настройка лимитов (таймаутов) RDP-сессий на терминальном сервере Windows
По умолчанию, на терминальном сервере RDP-сессия длится до тех пор, пока пользователь ее явно не прервет. В некоторых случаях, это может привести к зависанию профиля или некоторых запущенных приложений.
Рекомендуется задавать лимит на сеансы, по достижении которого принудительно завершать терминальные сессии и выполнять выход пользователя из системы.
Настройка на терминальном сервере
Сессии можно настроить для конкретного сервера в настройках сервера терминалов. Процесс немного отличается в зависимости от версии операционной системы Windows.
Windows 2012 и выше
В диспетчере серверов переходим в службы удаленных рабочих столов:
Переходим в коллекцию, для которой хотим поменять настройки сеанса:
В свойствах коллекции кликаем по Задачи — Изменить свойства:
Переходим в раздел Сеанс и выставляем ограничения:
* где Окончание разъединенного сеанса — время, через которое для пользователей с завершенными сеансами произойдет выход из системы; Ограничение бездействующего сеанса — время, через которое сеанс перейдет в разъединенный, если пользователь в нем не работает (не проявляет никакой активности).
Windows 2008 R2 и ниже
Нажимаем Пуск — Администрирование — Службы удаленных рабочих столов — Конфигурация узла сеансов удаленных рабочих столов:
В разделе «Подключения» дважды кликаем по RDP-Tcp:
На вкладке «Сеансы» ставим галочку Переопределить параметры пользователя и выставляем необходимые лимиты:
* где Завершение отключенного сеанса — время, по достижении которого отключенный сеанс будет завершен, а для пользователя будет выполнен выход; Ограничение бездействующего сеанса — ограничение на сеанс, в котором пользователь не работает.
Настройка через GPO
Если терминальных серверов много или необходимо централизованно задать политику ограничения сессий, можно воспользоваться групповыми политиками Active Directory.
Заходим в консоль управления политиками — создаем политику с любым понятным названием — переходим в настройку созданной политики.
Используем следующие ветки для настройки:
- Конфигурация компьютера\Политики\Административные шаблоны\Компоненты Windows\Службы удаленных рабочих столов\Узел сеансов удаленных рабочих столов\Ограничение сеансов по времени
(Computer Configuration\Policies\Administrative Templates\Windows Components\Remote Desktop Services\Remote Desktop Session Host\Session Time Limits) - Конфигурация пользователя\Политики\Административные шаблоны\Компоненты Windows\Службы удаленных рабочих столов\Узел сеансов удаленных рабочих столов\Ограничение сеансов по времени
(User Configuration\Policies\Administrative Templates\Windows Components\Remote Desktop Services\Remote Desktop Session Host\Session Time Limits)
* если для пользователей и компьютеров используются отдельные организационные юниты, необходимо создавать отдельные политики для каждого юнита и соответствующей веткой.
Для настройки выставляем следующие значения:
Отключение неактивных пользователей windows server 2012
Повторюсь, что в gpo все удалено, касаемо rdp.
Конечно же я применяла политики командой gpupdate /force, и даже перезагружала сервер.
вывод gpresult /r (картинки пока не дает прикреплять)
Программа формирования отчета групповой политики операционной системы
Microsoft (R) Windows (R) версии 2.0
c Корпорация Майкрософт (Microsoft Corporation), 2013. Все права защищены.
Создано 21.12.2017 в 18:55:42
Конфигурация ОС: Основной контроллер домена
Версия ОС: 6.3.9600
Имя сайта: Default-First-Site-Name
Перемещаемый профиль: Н/Д
Локальный профиль: C:\Users\Администратор
Подключение по медленному каналу: Нет
Конфигурация компьютера
————————
CN=DC1,OU=Domain Controllers,DC=TDR,DC=local
Последнее применение групповой политики: 21.12.2017 в 18:52:14
Групповая политика была применена с: DC1.TDR.local
Порог медленного канала для групповой политики: 500 kbps
Имя домена: TDR
Тип домена: Windows 2008 или более поздняя версия
Примененные объекты групповой политики
—————————————
Default Domain Controllers Policy
Default Domain Policy
Local Group Policy
Компьютер является членом следующих групп безопасности
——————————————————
Администраторы
Все
Пользователи
Пред-Windows 2000 доступ
Серверы конечных точек RDS
Серверы лицензий сервера терминалов
Серверы удаленного доступа RDS
Серверы управления RDS
Группа авторизации доступа Windows
СЕТЬ
Прошедшие проверку
Данная организация
DC1$
Контроллеры домена
КОНТРОЛЛЕРЫ ДОМЕНА ПРЕДПРИЯТИЯ
Подтвержденное центром проверки подлинности удостоверение
Группа с запрещением репликации паролей RODC
Обязательный уровень системы
Конфигурация пользователя
—————————
CN=Администратор,CN=Users,DC=TDR,DC=local
Последнее применение групповой политики: 21.12.2017 в 17:54:38
Групповая политика была применена с: DC1.TDR.local
Порог медленного канала для групповой политики: 500 kbps
Имя домена: TDR
Тип домена: Windows 2008 или более поздняя версия
Следующие политики GPO не были применены, так как они отфильтрованы
———————————————————————
Local Group Policy
Фильтрация: Не применяется (пусто)
Пользователь является членом следующих групп безопасности
———————————————————
Пользователи домена
Все
Администраторы
Пользователи журналов производительности
Пользователи
Пользователи удаленного рабочего стола
Пред-Windows 2000 доступ
REMOTE INTERACTIVE LOGON
ИНТЕРАКТИВНЫЕ
Прошедшие проверку
Данная организация
ЛОКАЛЬНЫЕ
Администраторы домена
Владельцы-создатели групповой политики
Администраторы схемы
Администраторы предприятия
Подтвержденное центром проверки подлинности удостоверение
Группа с запрещением репликации паролей RODC
Высокий обязательный уровень