Настройка лимитов (таймаутов) RDP-сессий на терминальном сервере Windows
Тематические термины: терминальный сервер, 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)
* если для пользователей и компьютеров используются отдельные организационные юниты, необходимо создавать политику в соответствующей ветке.
Для настройки выставляем следующие значения:
Параметр | Описание | Значения |
---|---|---|
Завершать сеанс при достижении ограничения по времени (End session when time limits are reached) | Задает глобальную настройку, которая разрешает или запрещает лимиты, в принципе. | Включено — включает режим ограничения сессий (для нашей цели выбираем это значение). Отключено — выключает и запрещает лимиты. Не задано — выключает для политик, но разрешает локальные настройки на сервере. |
Задать ограничение по времени для активных, но бездействующих сеансов служб удаленных рабочих столов (Set time limit for active but idle Terminal Services sessions) | Если пользователь завершил работу с сервером, но не завершил сеанс, можно установить ограничение сессии этим параметром. Таким образом, пользователи, которые не завершают сеанс будут автоматически выкинуты из сессии. | Включено — активируем лимит для бездействующих сеансов (выставляем ее). И в выпадающем списке указываем время бездействия, например 3 часа. Отключено — отключает лимит на бездействующие сессии. Не задано — настройка задается локально на сервере. |
Задать ограничение по времени для отключенных сеансов (Set time limit for disconnected sessions) | Если пользователь отключил сеанс, но не вышел из системы, можно автоматически его разлогинить с помощью этой опции. | Включено — активируем лимит для завершенных сеансов (выставляем ее). И в выпадающем списке указываем время, например 3 часа. Отключено — отключает лимит на завершенные сессии. Не задано — настройка задается локально на сервере. |
Задать ограничение по времени для активных сеансов служб удаленных рабочих столов (Set time limit for active Remote Desktop Services sessions) | Независимо от того, работает пользователь в системе или нет, сервер завершит его сеанс, отправив уведомление за 2 минуты до отключения. | Включено — активируем лимит для активных сеансов. В выпадающем списке необходимо указать время. Данную опцию лучше не применять. С практической точки зрения опция создаст много неудобств. Отключено — отключает лимит на завершенные активные сессии. Не задано — настройка задается локально на сервере. |
Для применения настроек ждем или выполняем команду на сервере:
gpupdate /force
Проверяем, применились ли политики:
gpresult /r
Использование фильтров
Если нам необходимо применить ограничения через политики только для определенных серверов/пользователей, применяем фильтры безопасности.
Для этого создаем группу в Active Directory и добавляем туда нужные серверы (или пользователей).
Проверяем, что нужные нам серверы или пользователи стали членами созданной группы.
а) команда для проверки компьютера:
gpresult /r /scope:computer
б) для пользователя:
gpresult /r /scope:user
Если в созданной группе компьютера/пользователя нет, то:
а) для пользователя выходим из сеанса сервера и подключаемся по новой.
б) на сервере выполняем команды:
klist -lh 0 -li 0x3e7 purge
gpupdate /force
Если в нашей среде Active Directory несколько сайтов, то наши настройки могут появиться на нужном контроллере через несколько минут (как правило, до 15). Если нет возможности ждать, можно форсировать процесс репликации с помощью инструмента «Active Directory — сайты и службы».
Далее при создании групповой политики удаляем группу «Прошедние проверку», которая присутствует по умолчанию:
И добавляем созданную ранее, например:
После настраиваем политику по инструкции выше.
Чтобы проверить, что настройка применилась только у нужным нам объектам, на сервере выполняем команду:
gpresult /r