- Windows remote desktop session limit
- Постановка задачи
- Изменение настроек сеанса через групповую политику
- Популярные Похожие записи:
- 2 Responses to Настройка лимита времени сеанса для разных групп на RDS ферме
- Настройка лимитов (таймаутов) RDP-сессий на терминальном сервере Windows
- Настройка на терминальном сервере
- Windows 2012 и выше
- Windows 2008 R2 и ниже
- Настройка через GPO
- Использование фильтров
- Настройка лимитов (таймаутов) для RDP/RDS сессий в Windows
Windows remote desktop session limit
Доброго времени суток! Уважаемые читатели и гости IT блога Pyatilistnik.org. В прошлый раз мы с вами разобрали механизм очистки папки Windows на RDS ферме. Сегодня так же поговорим про них, в данной заметке я бы хотел вам рассказать, о том, как можно задать время работы сеанса для разных пользователь, настроив им разные лимиты. Уверен, данный материал будет полезен, все у кого внедрена или планируется внедрение терминальных ферм.
Постановка задачи
Есть RDS-ферма из 15 хостов, на уровне коллекции произведены настройки на ограничения активного сеанса, времени разъединения. Данная настройка распространяется на всех участников, подключенных к ней. Хотелось бы иметь возможность для определенных групп пользователей переопределить настройки времени ограничения сеанса, бездействия и разъединения.
Открываем диспетчер серверов с собранной оснасткой управления RDS. Для настройки сеансов, вам нужно открыть свою коллекцию и в свойствах коллекции найти кнопку задачи, щелкнуть по ней и выбрать кнопку изменить свойства.
Переходите на вкладку «Сеанс». Тут будут три настройки распространяемые на сеанс пользователя, об их значении я уже писал в статье (Таймер входа в систему истек)
- Окончание разъединенного сеанса
- Ограничение активного сеанса
- Ограничение бездействующего сеанса
Тут я напоминаю все лимиты действуют на всех пользователей, предположим, что я хочу чтобы пользователи из отдела продаж имели ограничение активного сеанса всего 10 часов, более им не нужно, как это сделать. В рамках общих настроек коллекций сеансов никак, но обходной путь есть и называется он групповые политики.
Изменение настроек сеанса через групповую политику
Для более тонкой настройки лимитов сеансов на RDS или терминальной ферме, вы может использовать групповую политику, я бы назвал, это точечной настройкой.
Существует две ветки настроек, одна для пользователей, другая для компьютеров.
Вот ветка для пользователей:
Вот ветка для компьютеров:
Вы тут обнаружите 5 политик:
- Задать ограничение по времени для отключенных сеансов
- Задать ограничение времени для активных, но бездействующих сеансов служб удаленных рабочих столов
- Задать ограничение по времени для активных сеансов служб удаленных рабочих столов
- Завершить сеанс при достижении ограничения по времени
- Задать предел для выхода из сеансов RemoteApp
Следуя из задачи, меня интересует третий пункт, который позволит задать другие значения максимального времени работы сессии. Открываем его и включаем. В выпадающем списке указываем на какой лимит времени нужно активировать. Теперь вам нужно либо применить эту политику на нужную OU, либо же сделать фильтрацию, если нужные вам пользователи лежат вместе с остальными, на кого политику применять ненужно. В фильтрах безопасности, нажмите добавить и выберите нужную группу, пользователей или компьютеры.
После чего удалите из фильтра безопасности группу «Прошедшие проверку».
Вот таким вот простым методом вы можете назначать персональные политики времени ограничения сессии пользователя на ферме RDS. С вами был Иван Семин, автор и создатель портала Pyatilistnik.org.
P.S. так же некоторыми настройками RDS-фермы можно управлять через реестр Windows в ветке: \HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services
Популярные Похожие записи:
2 Responses to Настройка лимита времени сеанса для разных групп на RDS ферме
Спасибо за статью , странно , но каменный цветок не выходит 🙁
Ещё интересный момент если из фильтра безопасности удалить прошедших проверку и оставить только группу пользователей.. политика будет отфильтрована безопасностью.
На другом форуме наткнулся на подобную сноску..
Во всех предыдущих рекомендациях при необходимости использовать Security Filtering MS всегда советовали удалять группу Authenticated Users и добавлять группу безопасности пользователей с правами Read и Apply.
После установки обновления MS16-072 /KB3159398 теперь для успешного применения политики, права Read на доступ к объекту GPO должны быть также и у учетной записи самого компьютера.
А так как под Authenticated Users подразумеваются, как пользовательские, так и компьютерные учетки, то удаляя эту группу, мы тем самым блокируем доступ к GPO.
Да права для прошедших пользователей на вкладке делегирование нужно оставлять или для компьютеров домена, если политика на них, и уже фильтровать по фильтру безопасности. Вся эта канитель началась году так в 2016, после очередных обновлений
Настройка лимитов (таймаутов) 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