- Настройка лимитов (таймаутов) RDP-сессий на терминальном сервере Windows
- Настройка на терминальном сервере
- Windows 2012 и выше
- Windows 2008 R2 и ниже
- Настройка через GPO
- Использование фильтров
- Настройка лимитов (таймаутов) для RDP/RDS сессий в Windows
- Настройка таймаутов RDP-сессий на сервере Windows
- Виртуальный сервер на базе Windows
- Что это такое?
- Установка службы
- Настройка групповых политик
Настройка лимитов (таймаутов) 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)
* если для пользователей и компьютеров используются отдельные организационные юниты, необходимо создавать политику в соответствующей ветке.
Для настройки выставляем следующие значения:
Параметр | Описание | Значения |
---|---|---|
Завершать сеанс при достижении ограничения по времени (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 минуты до отключения. | Включено — активируем лимит для активных сеансов. В выпадающем списке необходимо указать время. Данную опцию лучше не применять. С практической точки зрения опция создаст много неудобств. Отключено — отключает лимит на завершенные активные сессии. Не задано — настройка задается локально на сервере. |
Для применения настроек ждем или выполняем команду на сервере:
Проверяем, применились ли политики:
Использование фильтров
Если нам необходимо применить ограничения через политики только для определенных серверов/пользователей, применяем фильтры безопасности.
Для этого создаем группу в Active Directory и добавляем туда нужные серверы (или пользователей).
Проверяем, что нужные нам серверы или пользователи стали членами созданной группы.
а) команда для проверки компьютера:
gpresult /r /scope:computer
б) для пользователя:
gpresult /r /scope:user
Если в созданной группе компьютера/пользователя нет, то:
а) для пользователя выходим из сеанса сервера и подключаемся по новой.
б) на сервере выполняем команды:
klist -lh 0 -li 0x3e7 purge
Если в нашей среде Active Directory несколько сайтов, то наши настройки могут появиться на нужном контроллере через несколько минут (как правило, до 15). Если нет возможности ждать, можно форсировать процесс репликации с помощью инструмента «Active Directory — сайты и службы».
Далее при создании групповой политики удаляем группу «Прошедние проверку», которая присутствует по умолчанию:
И добавляем созданную ранее, например:
После настраиваем политику по инструкции выше.
Чтобы проверить, что настройка применилась только у нужным нам объектам, на сервере выполняем команду:
Настройка лимитов (таймаутов) для 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 Server.
Виртуальный сервер на базе Windows
- Лицензия включена в стоимость
- Тестирование 3-5 дней
- Безлимитный трафик
Что это такое?
Чтобы серверы выполняли определенную работу, например макросы или скрипты, даже тогда, когда пользователь к ним не подключен, необходимо выполнить настройку параметров времени ожидания и повторного подключения для сеансов служб удаленных рабочих столов.
Установка службы
Чтобы установить Службу удаленных рабочих столов, откройте панель управления сервером и нажмите Add roles and features.
Выберете Remote Desktop Services Installation.
Примечание: по умолчанию эта служба не установлена на сервер.
Для того чтобы установить службу на ваш локальный VPS выберете опцию MultiPoint Services.
Выберете ваш сервер из пула и нажмите Next.
На следующем шаге отметьте галочкой пункт об автоматической перезагрузке сервера после установки службы и нажмите Deploy.
Начнется развертывание службы, которое может занять продолжительное время, по окончанию которого, ваш сервер будет перезагружен.
После перезагрузки вы увидите следующие сообщения об успешном развертывании.
Настройка групповых политик
Чтобы выполнить настройку групповых политик необходимо открыть консоль GPMC, это можно сделать с помощью команды gpmc.msc.
Перейдите по следующему пути \Конфигурация компьютера\Политики\Административные шаблоны\Компоненты Windows\Службы удаленных рабочих столов\Узел сеансов удаленных рабочих столов\Ограничение сеансов по времени
(Computer Configuration\Policies\Administrative Templates\Windows Components\Remote Desktop Services\Remote Desktop Session Host\Session Time Limits)
Следующие параметры необходимо перевести в состояние Enabled (Включено):
- End session when time limits are reached (Завершать сеанс при достижении ограничения по времени) — опция запрещает или разрешает таймауты.
- Set time limit for active but idle Terminal Services sessions (Задать ограничение по времени для активных, но бездействующих сеансов служб удаленных рабочих столов) — опция задает таймаут для неактивных сеансов.
- Set time limit for disconnected sessions (Задать ограничение по времени для отключенных сеансов) — опция задает таймаут для завершенных сеансов.
Чтобы изменить состояние опции, выберете нужную и с помощью правой кнопки мыши выберете пункт Edit.
В открывшемся окне выберете Enabled и требуемое время, нажмите Apply.
После того как как все опции будут включены, окно будет выглядеть следующим образом.