Ограничение сеанса rdp по времени windows server 2012

Инструкция по настройке ограничений по времени терминальных сеансов на сервере Windows. В статье описан процесс настройки как на самом сервере, так и через групповую политику Active Directory.

Настройка лимитов (таймаутов) RDP-сессий на терминальном сервере Windows

Обновлено Обновлено: 26.01.2021
Опубликовано Опубликовано: 12.06.2017

Тематические термины: терминальный сервер, Windows

По умолчанию, на терминальном сервере RDP-сессия длится до тех пор, пока пользователь ее явно не прервет. В некоторых случаях, это может привести к зависанию профиля или некоторых запущенных приложений.

Рекомендуется задавать лимит на сеансы, по достижении которого принудительно завершать терминальные сессии и выполнять выход пользователя из системы.

Настройка на терминальном сервере

Сессии можно настроить для конкретного сервера в настройках сервера терминалов. Процесс немного отличается в зависимости от версии операционной системы Windows.

Windows 2012 и выше

В диспетчере серверов переходим в службы удаленных рабочих столов:

Переходим в Службы удаленных рабочих столов в управлении серверами

Переходим в коллекцию, для которой хотим поменять настройки сеанса:

Переход к настройке коллекции сервера терминалов

В свойствах коллекции кликаем по Задачи — Изменить свойства:

Переходим к настройке коллекции

Переходим в раздел Сеанс и выставляем ограничения:

Настраиваем лимит терминальных сессий

* где Окончание разъединенного сеанса — время, через которое для пользователей с завершенными сеансами произойдет выход из системы; Ограничение бездействующего сеанса — время, через которое сеанс перейдет в разъединенный, если пользователь в нем не работает (не проявляет никакой активности).
 

Windows 2008 R2 и ниже

Нажимаем ПускАдминистрирование — Службы удаленных рабочих столов — Конфигурация узла сеансов удаленных рабочих столов:

Пуск - Администрирование

Службы удаленных рабочих столов - Конфигурация узла сеансов удаленных рабочих столов

В разделе «Подключения» дважды кликаем по RDP-Tcp:

Кликаем дважды по RDP-Tcp

На вкладке «Сеансы» ставим галочку Переопределить параметры пользователя и выставляем необходимые лимиты:

Настраиваем сеансы для терминальных сессий

* где Завершение отключенного сеанса — время, по достижении которого отключенный сеанс будет завершен, а для пользователя будет выполнен выход; Ограничение бездействующего сеанса — ограничение на сеанс, в котором пользователь не работает.

Настройка через GPO

Если терминальных серверов много или необходимо централизованно задать политику ограничения сессий, можно воспользоваться групповыми политиками Active Directory.

Заходим в консоль управления политиками — создаем политику с любым понятным названием — переходим в настройку созданной политики.

В зависимости от необходимости применять политику к пользователям и/или компьютерам, используем следующие ветки для настройки:

  • Конфигурация компьютераПолитикиАдминистративные шаблоныКомпоненты WindowsСлужбы удаленных рабочих столовУзел сеансов удаленных рабочих столовОграничение сеансов по времени
    (Computer ConfigurationPoliciesAdministrative TemplatesWindows ComponentsRemote Desktop ServicesRemote Desktop Session HostSession Time Limits)
  • Конфигурация пользователяПолитикиАдминистративные шаблоныКомпоненты WindowsСлужбы удаленных рабочих столовУзел сеансов удаленных рабочих столовОграничение сеансов по времени
    (User ConfigurationPoliciesAdministrative TemplatesWindows ComponentsRemote Desktop ServicesRemote Desktop Session HostSession 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 — сайты и службы».

Далее при создании групповой политики удаляем группу «Прошедние проверку», которая присутствует по умолчанию:

Удаляем группу Прошедние проверку в GPO при его создании

И добавляем созданную ранее, например:

Добавляем группу безопасности в фильтры GPO

После настраиваем политику по инструкции выше.

Чтобы проверить, что настройка применилась только у нужным нам объектам, на сервере выполняем команду:

gpresult /r

Когда пользователь со своего компьютера закрывает окно своей RDP/RDS сессии в терминальном клиенте (mstsc.exe, RDCMan или RDP HTML WEB клиенте) простым нажатием по крестику в окне, без выполнения выхода (logoff), его сессия переходит из активного режима в режим disconnected (разъединённый сеанс). В этом режиме все запущенные пользователем программы, открытые документы и окна продолжают работать на удаленном сервере и потреблять ресурсы.

Содержание:

  • Автоматическое завершение неактивных RDP сессий в Windows
  • Сообщения о превышении длительности RDP сессий

По-умолчанию RDP сессия пользователя в Windows может находится в состоянии disconnected до перезагрузки компьютера или явного ее завершения пользователем или администратором. Это довольно удобно, т.к. пользователь может в любой момент подключиться к своей старой сессии и продолжить работу с запущенными программами и открытыми документами.

На следующем скриншоте видно, что отключенные сессии пользователей на RDS сервере с Windows Server 2019 потребляют около 35% памяти сервера.

disconnected сесии не отключаются на rds/rdp сервере

Кроме того незавершенные сессии могут блокировать открытые файлы на файловых серверах, вызывать проблемы с корректным сохранением данных в приложениях, профилях или User Profile Disks. Кроме наличие старых RDP сессий часто вызывает проблему блокировки учетной записи пользователей в домене после смены пароля (когда RDS сессии продолжает работать под старыми паролем пользователя).

С помощью команды
quser
можно узнать, когда начата RDP сессия пользователя, длительность простоя и статус сессии.

quser - длительность rdp сеансов, простоя rdp сессий

Также вы можете вывести информацию о длительности сессий пользователей в RDS фермы с помощью PowerShell скрипта (укажите FQDN вашего сервера RDS Connection Broker):

$connectionBrocker = “MSK-RDSMAN.WINITPRO.RU"
Get-RDUserSession -ConnectionBroker $connectionBrocker |select-object -Property CollectionName, HostServer, DomainName, UserName, ServerIPAddress, CreateTime, DisconnectTime,  SessionState, IdleTime , SessionID , `
@{Name='SessionAge ([days.]hours:minutes)';Expression={ ((get-date ) - $_.CreateTime) } }

Вы можете настроить максимальную длительность активных, отключенных и простаивающих (без активности пользователя) сессии для Remote Desktop Services.

Автоматическое завершение неактивных RDP сессий в Windows

Для автоматического завершения отключенных RDP/RDS сессий через определенный промежуток времени, вам нужно правильно настроить лимиты (таймауты).

Если у вас развернута полноценная Remote Desktop Services ферма на Windows Server, вы можете настроить параметры таймаутов сессий пользователей в настройках RDS коллекций на вкладке Session.

Укажите время, через которое нужно завершить отключенный сеанс в параметре End a disconnected session (по умолчанию длительность RDP сеанса не ограничена – Never). Также вы можете выставить максимальную длительность активной RDP сессии (Active session limit) и отключение бездействующего сеанса (Idle session limit). Это жесткие таймауты применяются для всех сессий в RDS коллекции.

настройка таймаутов сесий и параметров переподключения на rd session host

В Windows Server 2012 R2/2016/2019/22 можно настроить таймауты RDP сессий с помощью групповых политик. Можно использовать как редактор доменных GPO gpmc.msc, так и редактор локальных групповых политик (gpedit.msc) на конкретном RDS сервере ( или на десктопной версии Windows, если вы разрешили к ней множественные RDP подключения).

Параметры таймаутов 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 сеансов по времени

По умолчанию эти параметры не настроены. Чтобы автоматически завершать отключенные RDP сеансы пользователей через 8 часов, включите политику “Set time limit for disconnected session” = Enabled, и в выпадающем списке выберите 8 часов.

политика Set time limit for disconnected session

Сохраните изменения и обновите настройки групповых политик в Windows (gpupdate /force). Новые настройки таймаутов будут применяться только к новым RDP сеансам, текущие сеансы придется завершить вручную.

Настройки GPO имеют более высокий приоритет, чем настройки таймаутов в коллекции RDS.

Аналогичные настройки по управлению таймаутами RDP есть в секции GPO с настройками пользователя: User Configuration -> Administrative Templates -> Windows Components. С помощью политики из пользовательской секции вы сможете более гибко настроить группы пользователей с различными лимитами на длительность RDP сессий.

Параметры таймаутов для RDP сессий, которые задаются политиками можно также настроить напрямую через реестр. Указанным выше политикам соответствую следующие DWORD параметры в ветке реестра HKLMACHINESOFTWAREPoliciesMicrosoftWindows NTTerminal Services

  • MaxDisconnectionTime
  • MaxIdleTime
  • MaxConnectionTime
  • MaxDisconnectionTime
  • RemoteAppLogoffTimeLimit

Например, чтобы установить максимальную продолжительность для отключенной RDP сессии в 15 минут (90000 мс), нужно изменить параметр реестра с помощью такой команды PowerShell:

Set-ItemProperty "HKLM:SOFTWAREPoliciesMicrosoftWindows NTTerminal Services" -Name MaxDisconnectionTime -Type 'DWord' -Value 900000

Также вы можно можете задать ограничение времени RDP сессии на вкладе sessions в свойствах локального (консоль lusrmgr.msc) или доменного пользователя (консоль dsa.msc — ADUC). Здесь доступны следующие параметры:

  • End a disconnected session
  • Active session limit
  • Idle session limit
  • When a session limit is reached or connection is broken: Disconnect from session или End Session
  • Allow reconnection: From any Client или From originating client only

настройки макс. длительности сессий в свойствах пользователя

Не стоит делать таймауты на время RDP сеанса слишком маленькими, иначе сеансы пользователей будут завершаться при малейшей неактивности.

Если у вас развернут RD Gateway Server для доступа к RDS серверам, вы можете настроить отдельные таймауты для пользователей, подключенных через RDGW (откройте политику авторизации подключений и перейдите на вкладку Timeouts).

rd gateway настройка таймаутов для подключений пользователей

В Windows Server 2008 R2 также можно было задать лимиты RDP сессий на хосте через специальную консоль tsconfig.msc (RD Session Host Configuration). Достаточно было запустить консоль, щелкнуть правой кнопкой по RDP-Tcp -> Properties. Настройки ограничения длительности сессий находятся на вкладке Sessions. Но в следующих версиях Windows Server эта консоль отсутствует (хотя вы можете вручную скопировать файлы tsadmin.msc и tsconfig.msc и использовать эти консоли и более новых версиях Windows Server).

лимиты rdp в консоли tsconfig.msc

Сообщения о превышении длительности RDP сессий

После того, как вы настроили политики с таймаутами RDS, пользователи увидит такое сообщение, перед завершением своей сессии:

Idle timer expired
Session has been idle over its time limit.
It will be disconnected in 2 minutes.
Press any key to continue the session.

сообщение о простаивающей сесии в windows через 2 минуты

При этом в логах хоста появляется Event ID 26.

Подробнее о логах RDP подключений. [/aler]

событие простаивающей rdp сессии

Вы можете отключить это предупреждение, установив в классе WMI Win32_TSSessionSettings значение EnableTimeoutWarning = 0.

Set-WmiInstance -Path "\localhostrootCIMV2TerminalServices:Win32_TSSessionSetting.TerminalName='RDP-Tcp'" -Argument @{EnableTimeoutWarning=0}

Теперь, когда Windows будет автоматически завершать простаивающие RDP сеансы, пользователь получит от RDP клиента такое сообщение:

Your Remote Desktop Services session ended because the remote computer didn’t receive any input from you.

rds сессия завершена из-за неактивности пользователя

В некоторых случаях вы можете столкнуться с такой ошибкой в RDP клиенте:

Your Remote Desktop Services session has ended.
Another user connected to the remote computer, so your connection was lost. Try connecting again, or contact your network administrator.

rds сессий завершена другим пользователем

Это означает, что кто-то другой вошел на компьютер через RDP (когда количество одновременных RDP сессий на компьютере ограничено параметром Limit number of connections, например, в десктопных версиях Windows доступен только один сеанс). Либо вы повторно вошли на удаленных RDP/RDS хост с нового компьютера.

Вы можете разрешить множественные подключения под одним пользователем к RDP хосту с помощью параметра GPO Restrict Remote Desktop Services users to a single Remote Desktop Services session = Disabled (в ветке разделе Computer Configuration -> Administrative Templates -> Windows Components -> Remote Desktop Services -> Remote Desktop Session Host -> Connections).

групповая политика - ограничить количесвто сессий для одного пользователя до одной

Длительность RDP-сессий в ОС Windows по умолчанию не ограничена. Это означает, что сессия будет выполняться на сервере до тех пор, пока пользователь ее явно не завершит. Большое количество незавершенных сессий ведет к повышенной нагрузке на сервер, кроме того могут закончится лицензии на подключение. Во избежании подобных проблем рекомендуется ограничивать время RDP-сессий. В доменной среде это ограничение можно реализовать с помощью групповых политик.

При настройке ограничений очень важно понимать все нюансы, поэтому сначала немного теории. RDP-сессия может находится в одном из трех состояний:

• Active – сессия активна, пользователь выполняет какие то действия (двигает мышкой, нажимает на клавиатуру и т.п.);
• Idle – сессия активна, но пользователь активности не проявляет;
• Disconnected – сессия отключена.

Для завершения работы с удаленным рабочим столом у пользователя есть два варианта:

• Отключение (Disconnect) — пользователь отключается от удаленного компьютера, но сессия на нем остается. Это значит что все открытые пользователем файлы остаются открытыми, запущенные программы продолжают выполняться и т.д. Соответственно при необходимости пользователь может подключиться к своей сессии и продолжить работу с того места, на котором остановился;
• Завершение сеанса (Logoff) — пользователь завершает сеанс подключения и выходит из системы. При этом сессия пользователя закрывается, а все ее содержимое (документы, программы и т.п.) удаляется из памяти. При следующем подключении для пользователя создается новая сессия, в которой он будет все начинать заново.

Политики, отвечающие за ограничения сессии, могут применяться как к компьютерам, так и к пользователям. Настройки для компьютера:

Computer ConfigurationPoliciesAdministrative TemplatesWindows ComponentsRemote Desktop ServicesRemote Desktop Session HostSession Time Limits (Конфигурация компьютераПолитикиАдминистративные шаблоныКомпоненты WindowsСлужбы удаленных рабочих столовУзел сеансов удаленных рабочих столовОграничение сеансов по времени)

Для пользователя:

User ConfigurationPoliciesAdministrative TemplatesWindows ComponentsRemote Desktop ServicesRemote Desktop Session HostSession Time Limits (Конфигурация пользователяПолитикиАдминистративные шаблоныКомпоненты WindowsСлужбы удаленных рабочих столовУзел сеансов удаленных рабочих столовОграничение сеансов по времени).

раздел Session Time Limits

Set time limit for active Remote Desktop Services sessions (Задать ограничение по времени для активных сеансов служб удаленных рабочих столов)

Эта политика задает время, по истечении которого происходит автоматическое отключение активной сессии пользователя. Включать ее стоит только в том случае, если вы хотите жестко ограничить время работы пользователей, поскольку по истечении лимита времени сессия будет прервана независимо от активности пользователя.

Для активации политики переводим ее в состояние Enabled и выбираем необходимое время. Диапазон выбора широкий, от 1 минуты до 5 дней, а если выбрать Never, то сессия не будет отключаться никогда.

таймаут для активной сессии

Set time limit for active but idle Terminal Services sessions (Задать ограничение по времени для активных, но бездействующих сеансов служб удаленных рабочих столов)

Эта политика задает время, по истечении которого происходит автоматическое отключение сессии при неактивности пользователя. Если пользователь не проявляет активность, то по истечении указанного времени его сеанс будет отключен, т.е. перейдет в состояние Disconnected.

таймаут для неактивной сессии

Set time limit for disconnected sessions (Задать ограничение по времени для отключенных сеансов)

Здесь мы задаем время, в течение которого отключенная сессия хранится на сервере. По истечении этого времени сессия будет завершена и удалена с сервера со всем содержимым. Важно понимать, что при завершении сессии все несохраненные данные будут потеряны.

таймаут для отключенной сессии

End session when time limits are reached (Завершать сеанс при достижении ограничения по времени)

Эта политика указывает, что именно сделать с сессией. Если установить ее в Enabled, то по достижении временного лимита сессии всегда будут завершаться, а не отключаться.

принудительное завершение сессии вместо отключения

Все эти настройки помогают регулировать нагрузку на сервер, однако обращаться с ними следует аккуратно. К примеру время активной сессии лучше не ограничивать, чтобы пользователей не выкидывало с сервера в процессе работы. Также стоит быть осторожнее с лимитом для отключенных сессий, поскольку у пользователей могут быть несохраненные данные и при завершении сессии они будут потеряны.

  • Remove From My Forums

 none

ограничение по времени терминального сеанса

  • Вопрос

  • Здравствуйте. есть терминальный сервер на 2012 r2, на нем также развернуты remoteapp.  для теминального сеанса ограничения по времени заданы локальной групповой политикой а для remoteapp  из диспетчера серверов в свойствах
    развертывания коллекции. ограничение бездействующего сеанса задано 2 часа в обоих случаях, но выкидывает через минут 20. 

    может надо задавать время через доменные групповые политики, а не локальные?

    и как посмотреть настройки коллекции с помощью powershell?

Ответы

  • http://www.forum.mista.ru/topic.php?id=750206 — думаю тут решение вашей проблемы

    Административные шаблоны / Компоненты Windows / Службы удаленных рабочих столов / Узел сеансов удаленных рабочих столов / Ограничение сеансов
    по времени 

    Там есть два параметра: 
    Задать ограничение по времени для отключенных сеансов 
    Задать предел времени для выхода из сеансов RemoteApp

    • Помечено в качестве ответа

      13 января 2016 г. 8:17

В ходе удаленной работы пользователей, бывает важным выполнить настройку таким образом, чтобы программы, а также скрипты и макросы запущенные клиентом продолжали свою работу, а не закрывались сразу при разрыве сессии. В основе решения проблемы лежит всего лишь настройка таймаутов для RDP-сессий. Рассмотрим как это сделать.

Устанавливаем Службу удаленных рабочих столов. Для этого открываем “Панель управления сервером”. В открывшемся окне выбираем второй пункт — “Добавить роли и компоненты”.

В окне мастера установки ролей приводится общий ознакомительный материал. Данный текст будет появляться при каждой попытке добавить роли или компонент сервера. Чтобы  эта информация не появлялась вновь, рекомендуем установить галочку “Пропускать эту страницу по умолчанию”. Нажимаем кнопку “Далее”.

Следующим шагом выбираем тип установки — “Установка служб удаленных рабочих столов”. Нажимаем “Далее”.

На следующем этапе выбираем тип развертывания — “Службы Multipoint”. Обычно этот параметр установлен по умолчанию. Кликаем по кнопке “Далее”.

Следующим шагом выбираем сервер для которого выполняется установка. В нашем случае сервер уже добавлен, так как рассматриваем установку на единичный сервер не добавленный в домен. Нажимаем “Далее”.

Следующим шагом подтверждаем выбор. Установим галку, которая позволит системе перезагрузить сервер автоматически в случае необходимости. Нажимаем кнопку “Развернуть”.

Важно! В ходе установки могут быть закрыты все RDP-соединения, а также сервер может быть несколько раз перезагружен без дополнительного уведомления об этом.

Дожидаемся окончания процесса установки.

В окне трижды написано “Успешно”. Закрываем окно установки.

Приступаем к настройке групповых политик.

Для настройки групповых политик запускаем соответствующую консоль. В программе выполнить (Windows + R) вводим “gpedit.msc”. Нажимаем кнопку “OK” или Enter.

В открывшемся окне следуем по пути Конфигурация компьютера → Административные шаблоны → Компоненты Windows → Службы удаленных рабочих столов → Узел сеансов удаленных рабочих столов → Ограничение сеансов по времени.

Следующим параметрам необходимо установить значение “Включено”:

  • Завершать сеанс при достижении ограничения по времени — Установка данного параметра разрешает или запрещает использовать таймауты.
  • Задать ограничение по времени для активных, но бездействующих сеансов служб удаленных рабочих столов — параметр определяет задержку для неактивных сеансов, когда пользователь бездействует.
  • Задать ограничение по времени для отключенных сеансов — параметр задает таймаут для завершенных сеансов, когда сеанс завершен, но в фоновом режиме запущены некоторые процессы.

Для изменения значений, кликаем правой кнопкой мыши по каждому из пунктов. В контекстном меню выбираем “Редактировать”. Аналогичное окно откроется по двойному клику.

В открывшемся окне устанавливаем состояние как “Включено”. Затем устанавливаем временные рамки. По окончании нажимаем кнопку “OK”.

Выбор временных диапазонов остается на усмотрение системного администратора.

Параметр “Завершать сеанс при достижении ограничения по времени” не имеет временных диапазонов. Данный параметр нужно просто включить.

После включения всех опций окно будет выглядеть следующим образом.

На этом настройка окончена.

Аverage rating : 3.7

Оценок: 3

220140
Минск
ул. Домбровская, д. 9

+375 (173) 88-72-49

700
300

ООО «ИТГЛОБАЛКОМ БЕЛ»

220140
Минск
ул. Домбровская, д. 9

+375 (173) 88-72-49

700
300

ООО «ИТГЛОБАЛКОМ БЕЛ»

700
300

When a user closes the RDP/RDS session window in a terminal client (mstsc.exe, RDCMan or Remote Desktop HTML5 web client) by simply clicking the cross in the top right corner without logging off, his session goes from active to a disconnected mode. In this mode, all apps, open documents, and windows are still running on a Remote Desktop computer and consuming system resources.

Contents:

  • Automatically Log off Disconnected and Idle Remote Desktop User Sessions
  • Remote Desktop Session Has Been Idle Over Its Time Limit

By default, a user’s RDP session in Windows may stay in the disconnected state until terminated by the user or administrator, or until the computer is restarted. It is quite convenient, since a user may any time connect to his previous remote desktop session and continue working with running apps and open files.

The following screenshot shows that disconnected user sessions on an RDS server running Windows Server 2019 consume about 40% of the server RAM.

disconnected user session on rds host

Also, these sessions can block open files on your file servers, cause problems with incorrect saving of data in the apps, roaming profile folders, or on User Profile Disks. Disconnected RDP sessions often cause a domain user account lockout issue after a password change (when the RDS session continues to run under the user’s old password).

Using the qusercommand, you can view when a user RDP session was started, how long it was idle, and the current session state.

quser command - list all rds session with logon time, idle and state

You can also display information about the duration of user sessions in the RDS farm using a PowerShell script (specify the FQDN of your RDS Connection Broker server):

$connectionBrocker = “mun-rdscb.woshub.com"
Get-RDUserSession -ConnectionBroker $connectionBrocker |select-object -Property CollectionName, HostServer, DomainName, UserName, ServerIPAddress, CreateTime, DisconnectTime,  SessionState, IdleTime , SessionID , `
@{Name='SessionAge ([days.]hours:minutes)';Expression={ ((get-date ) - $_.CreateTime) } }

You can configure the maximum duration of active, disconnected, and idle (no user activity) sessions for Remote Desktop Services.

Automatically Log off Disconnected and Idle Remote Desktop User Sessions

To automatically end disconnected RDP/RDS sessions in a specified period of time, you need to set session limits (timeouts) correctly.

If you have a Remote Desktop Services farm deployed on Windows Server, you can configure user session timeout settings in the RDS collection settings on the Session tab.

Specify the time period, after which you want to kill a disconnected remote desktop session, at the End a disconnected session option (by default, an RDP session duration is unlimited – Never). You can also set the maximum time of an active user session (Active session limit) and end an idle session (Idle session limit). These hard timeouts are applied to all user sessions in the RDS collection.

RDS server timeouts in session collection properties on RD session host

In Windows Server 2022/2019/2016/2012R2, you can set RDP session timeouts using Group Policies. You can do it either in the domain GPO editor (gpmc.msc) or in the Local Group Policy Editor (gpedit.msc) on a specific RDS host (or on a desktop version of Windows if you have allowed multiple RDP connections to it).

The settings of RDP session timeouts are located in the following GPO section Computer Configuration -> Policies -> Administrative Templates -> Windows Components -> Remote Desktop Services -> Remote Desktop Session Host -> Session Time Limits. The following Remote Desktop timeout settings are available:

  • Set time limit for disconnected session;
  • Set time limit for active but idle Remote Desktop Services sessions — the policy allows to end idle RDP sessions that have no user input (like moving a mouse or typing something on a keyboard);
  • Set time limit for active Remote Desktop Services sessions — it is the maximum time of any RDP session (even an active one), after which it switches to the disconnected state;
  • End Session when time limits are reached — sets the time, after which an RDP session will be terminated (logoff) instead of disconnecting it;
  • Set time limit for logoff of RemoteApp sessions.

configure RDP/RDS session time limits via GPO

By default, these options are not configured. To automatically end all disconnected RDP user sessions in 8 hours, enable the “Set time limit for disconnected sessions” policy and select 8 hours in the dropdown list.

"Set time limit for disconnected session" - group policy parameter to restrict rdp session time

Save the changes and update the Group Policy settings on your RD host (gpupdate /force). New timeout settings will only be applied to new RDP sessions (you will have to end the current user sessions on RDSH manually ).

GPO settings take precedence over timeout settings in the RDS collection.

You can find the same RDP timeout settings in the user GPO section: User Configuration -> Administrative Templates -> Windows Components. Using the policy from the user section, you can more flexibly configure user groups with different limits on the duration of RDP sessions.

You can also set RDP session time limits through the registry. The following DWORD parameters from HKLMSOFTWAREPoliciesMicrosoftWindows NTTerminal Services registry key corresponding to the Group Policy options described above:

  • MaxDisconnectionTime
  • MaxIdleTime
  • MaxConnectionTime
  • MaxDisconnectionTime
  • RemoteAppLogoffTimeLimit

For example, to set the maximum duration for a disconnected RDP session to 15 minutes (90000 ms), you can change a registry parameter using the following PowerShell command:

Set-ItemProperty "HKLM:SOFTWAREPoliciesMicrosoftWindows NTTerminal Services" -Name MaxDisconnectionTime -Type 'DWord' -Value 900000

You can also set the limits of an RDP session on the Settings tab in the properties of a local (lusrmgr.msc) or domain user (dsa.msc — Active Directory Users and Computers console). The following options are available here:

  • End a disconnected session;
  • Active session limit;
  • Idle session limit;
  • When a session limit is reached or connection is broken: “Disconnect from session” or “End session”;
  • Allow reconnection: “From any Client” or “From originating client only”.

rds session timeouts in user properties in active directory

You shouldn’t make RDP session timeouts too short, otherwise, user sessions will end almost immediately after they become inactive.

If you have an RD Gateway Server deployed for remote access to RDS hosts, you can configure separate timeouts for users connected via RDGW (open the connection authorization policy and go to the Timeouts tab).

remote desktop gateway: session timeout settings

In Windows Server 2008 R2, you could also set RDP session timeouts using a special tsconfig.msc (RD Session Host Configuration) console. It was enough to open the console and right-click RDP-Tcp -> Properties. The session timeout limits are located on the Sessions tab. However, there is no such console in newer Windows Server versions (although you can manually copy tsadmin.msc and tsconfig.msc files and use these consoles on newer Windows Server versions as well).

tsconfig.msc session limits on windows server 2008 r2

Remote Desktop Session Has Been Idle Over Its Time Limit

After configuring RDS timeouts users will see the following warning before disconnecting an idle session:

Idle timer expired
Session has been idle over its time limit.
It will be disconnected in 2 minutes.
Press any key to continue the session.

idle timer expired rdp session message

And before the user disconnect, the Event ID 26 is logged in the System Event Viewer.

event id 26: session time limit reached

You can disable this warning by setting the EnableTimeoutWarning = 0 in the WMI class Win32_TSSessionSettings.

Set-WmiInstance -Path "\localhostrootCIMV2TerminalServices:Win32_TSSessionSetting.TerminalName='RDP-Tcp'" -Argument @{EnableTimeoutWarning=0}

Now, when Windows automatically ends idle RDP sessions, the user will receive the following message from the RDP client:

Your Remote Desktop Services session ended because the remote computer didn’t receive any input from you.

 Remote Desktop Services session ended - remote computer didn’t receive any input from you

In some cases, you may encounter this error in the RDP client:

Your Remote Desktop Services session has ended. Another user connected to the remote computer, so your connection was lost. Try connecting again, or contact your network administrator.

RDP session ended - another user connected to the remote computer

This means that someone else signed into the computer via RDP when the number of simultaneous RDP sessions on the computer is restricted by the Limit number of connections parameter (for example, only one remote session is available on desktop Windows versions). Or you have logged in to the RDP host from a new computer.

You can allow multiple connections under the same user account to the RDP host using the GPO option Restrict Remote Desktop Services users to a single Remote Desktop Services session = Disabled (under Computer Configuration -> Administrative Templates -> Windows Components -> Remote Desktop Services -> Remote Desktop Session Host -> Connections).

gpo: restrict RDS user to single session

Таймер входа в систему истек

Доброго времени суток! Уважаемые читатели IT блога pyatilistnik.org. Продолжаю сложившуюся традицию последнего времени по темам к статьям, а именно разбор полетов и решение проблем в часто встречаемых ситуациях на терминальных серверах, коих довольно много. В прошлый раз я вам подробно рассказал, как восстанавливать профиль пользователя, когда его невозможно загрузить, сегодня мы разберем вот такое всплывающее окно во время сеанса пользователя на RDS хосте и звучит оно вот так: Таймер входа в систему истек, и пользователь должен закончить сеанс. Давайте я расскажу в чем дело.

Описание проблемы

Есть сервер терминалов на Windows Server 2008 R2 по Windows Server 2016, пользователь логинится на него и работает в течении дня, под конец рабочего времени у него выскакивает:

Таймер входа в систему истек. Превышена общая длительность сеанса. Через две минуты сеанс будет отключен. Сохраните все файлы сейчас.

Таймер входа в систему истек

И сохранил пользователь документы или нет, идет сброс сессии. Последствия могут быть не самые приятные, так как в этот момент пользователь может доделывать важную работу или его вообще нет на рабочем месте, что означает, что он не сохранит документы, согласитесь это отразиться и на вас, после жалобы.

Тут все дело в системе которая призвана ограничить время работы и простоя пользователя на терминальном сервере, сделано это для того, чтобы забывчивые пользователи не висели в сессиях вечно и не расходовали ресурсы компании за зря, так как большинство из них не делает выход из системы, а просто закрывают сеанс RDP, через крести вверху, это же проще, а потом и получают свои битые профили.

Как решается проблема с таймером

Вам необходимо увеличить время отводимое для сессии без разрывов или вообще его убрать на свое усмотрение, делается это очень просто.

Настройка для терминального сервера на Windows 2012 R2-2016

Все настройки вы должны выполнять, либо на посреднике соединения (Connection Broker), где добавлена коллекция вашей RDS фермы, либо же если это отдельный сервер несущий все роли на себе, то делаем на нем. Открываем «Диспетчер серверов» находим там «Службы удаленных рабочих столов».

Через две минуты сеанс будет отключен

Переходите к своей коллекции серверов. Нас с вами будет интересовать верхняя часть, со свойствами коллекции RDS фермы.

Настройка времени работы пользователя на ферме

Чтобы изменить настройки таймера на терминальной ферме для пользовательского сеанса, нажмите «Задачи — Изменить свойства»

Изменение свойств коллекции RDS

Переходите на вкладку «Сеанс» и находите пункт «Ограничение активного сеанса» у меня до этого стояло 9 часов, как раз и выскакивала ошибка «Таймер входа в систему истек» в 18-00, так как пользователь начинал работу в 9-00. Вы можете задать значение «никогда», тогда разрывов не будет, но есть вероятность зависания сессии, в виде черных экранов по RDP.

Также советую задавать:

  • Окончание разъединённого сеанса — это время, спустя которое сервер завершит разъединенную сессию пользователя. Говоря иными словами, это количество времени, которое сервер будет хранить временные файлы пользователя. Если пользователь в течение выбранного интервала подключится к службам RDS, то он увидит своё рабочее окружение в том состоянии, что и до разъединения. При этом счётчик времени сбрасывается. Эта опция бывает полезна в случае когда у пользователя нестабильная линия связи с сервером или вы хотите подстраховаться и дать пользователям возможность вернуться к своему сеансу в случае его случайного или же не случайного разъединения.
  • Ограничение активного сеанса — это время в течение которого пользователю позволено непрерывно находиться на сервере. Эта настройка позволяет экономить ресурсы сервера в случае, когда пользователь открыл сеанс и находится в нём достаточно продолжительное время. Эту опцию можно задать немногим большую чем длина рабочего дня.
  • Ограничение бездействующего сеанса — это время в течение которого пользователь может оставаться в сеансе и при этом не производить никаких действий. Эта настройка, как и предыдущая, позволяет экономить ресурсы сервера, однако при её использовании нужно быть осторожным, поскольку пользователям обычно не нравится, когда их сеанс закрывается слишком часто.
  • Удалить временные папки при выходе — этим вы будите экономить место на вашем сервере, так как оно не резиновое ,и вам самому не придется чистить компьютер от мусора, пусть все будет автоматически.

 Настройка параметров сеанса (Таймера)

Настройка для терминального сервера на Windows 2008 R2

Если вы счастливый обладатель терминальной фермы на Windows Server 2008 R2, то тут ошибка «Таймер входа в систему истек. Превышена общая длительность сеанса. Через две минуты сеанс будет отключен. Сохраните все файлы сейчас.» решается следующим образом; Открываете кнопку пуск — Администрирование — Службы удаленных рабочих столов — Конфигурация узла сеансов удаленных рабочих столов. Это была отличнейшая оснастка в старой операционной системе, жалко, что ее потом убрали.

Ограничение времени сеанса пользователя

Либо можете почувствовать себя гуру и открыть оснастку «Конфигурация узла сеансов удаленных рабочих столов» через команду mmc.

Таймер входа в систему истек w2008r2

Далее щелкаем по пункту «RDP-Tcp Microsoft RDP 7.1»

Таймер входа в систему истек w2008

Тут те же параметры, выбираем нужное значение для «Ограничение активного сеанса» и забываем про окно с уведомлением «Таймер входа в систему истек»

Лимит сессий RDP

Через групповые политики

Не могу не рассказать про централизованный метод задания настроек на сервера, а именно с помощью средств Active Directory в лице GPO.

Заходим в консоль управления политиками — создаем политику с любым понятным названием — переходим в настройку созданной политики. Используем следующие ветки для настройки:

  • Конфигурация компьютераПолитикиАдминистративные шаблоныКомпоненты WindowsСлужбы удаленных рабочих столовУзел сеансов удаленных рабочих столовОграничение сеансов по времени
    (Computer ConfigurationPoliciesAdministrative TemplatesWindows ComponentsRemote Desktop ServicesRemote Desktop Session HostSession Time Limits)

GPO ограничение время сессии пользователя

  • Конфигурация пользователяПолитикиАдминистративные шаблоныКомпоненты WindowsСлужбы удаленных рабочих столовУзел сеансов удаленных рабочих столовОграничение сеансов по времени
    (User ConfigurationPoliciesAdministrative TemplatesWindows ComponentsRemote Desktop ServicesRemote Desktop Session HostSession Time Limits)

Что у вас тут есть из политик:

  1. Задать ограничение по времени для отключенных сеансов
  2. Задать ограничение по времени для активных, но бездействующих сеансов служб удаленных рабочих столов — Если пользователь завершил работу с сервером, но не завершил сеанс, можно установить ограничение сессии этим параметром. Таким образом, пользователи, которые не завершают сеанс будут автоматически выкинуты из сессии.
  3. Задать ограничение по времени для отключенных сеансов — Если пользователь отключил сеанс, но не вышел из системы, можно автоматически его разлогинить с помощью этой опции.
  4. Завершать сеанс при достижении ограничения по времени — это и отвечает за «Таймер входа в систему истек».

Заметьте у каждой политики будет три варианта задания:

  1. Включено — логично, что включает политику
  2. Отключено — запрещает политику
  3. Не задано — идет по умолчанию, то что идет в настройках из коробки

Надеюсь, что данная заметка помогла вам понять причину появления окна с предупреждением «Таймер входа в систему истек. Превышена общая длительность сеанса. Через две минуты сеанс будет отключен. Сохраните все файлы сейчас.'» и вы открыли для себя полезные настройки для терминальных столов. Если у вас есть вопросы, то пишите их в комментариях, я люблю дискуссии. Если вам понравилась статья, то можете ею поделиться в социальных сетях, я на вас не обижусь :).

По-умолчанию, когда пользователь со своего компьютера закрывает окно своей RDP/RDS сессией в терминальном клиенте (mstsc, rdcman или rdp html web клиент) простым нажатием по крестику в окне, без выполнения выхода (logoff), его сессия переходит в режим disconnected (разъединённый сеанс). В этом режиме все запущенные пользователем программы, открытые документы и окна продолжают работать на удаленном сервере и потреблять ресурсы.

По-умолчанию в Windows RDP сессия пользователя может находится в состоянии disconnected до перезагрузки компьютера или явного ее завершения пользователем или администратором. Это довольно удобно, т.к. пользователь может в любой момент подключиться к своей старой сессии и продолжить работу с открытыми программами и документами.

На следующем скриншоте видно, что отключенные сессии пользователей на RDS сервере с Windows Server 2016 используют около 35% памяти сервера. Кроме того незавершенные сессии могут блокировать открытые файлы на файловых серверах, вызывать проблемы с корректным сохранением данных в приложениях, профилях или User Profile Disks.

disconnected сесии не отключаются на rds/rdp сервере

С помощью команды quser можно узнать, когда начата RDP сессия пользователя, длительность простоя и статус сессии.

quser - длительность rdp сеансов, простоя rdp сессий

Для автоматического завершения отключенных RDP/RDS сессий через определенный промежуток времени, вам нужно правильно настроить лимиты (таймауты).

При использовании RDS сервера, вы можете настроить параметры таймаутов сессий в настройках RDS коллекций на вкладке Session.

Укажите время, через которое нужно завершить отключенный сеанс в параметре End a disconnected session (по умолчанию срок сеанса неограничен – never). Также вы можете выставить максимальную длительность активной RDP сессии (Active session limit) и отключение бездействующего сеанса (Idle session limit). Это жесткие таймауты применяются для всех сессий в RDS коллекции.

настройка таймаутов сесий и параметров переподключения на rd session host

Также можно настроить ограничение времени RDP сессии в свойства локального (консоль lusrmgr.msc) или доменного пользователя (консоль dsa.msc — ADUC).

настройки макс. длительности сессий в свойствах пользователя

Не стоит делать таймауты на время RDP сеанса слишком маленькими, иначе сеансы пользователей будут завершаться при малейшей неактивности.

В 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 есть в секции GPO с настройками пользователи: User Configuration -> Administrative Templates -> Windows Components. С помощью политики из пользовательской секции вы сможете более гибко настроить группы пользователей с различными лимитами на длительность RDP сессий.

политики ограничения времени rdp сеансов по времени

По умолчанию эти параметры не настроены. Чтобы автоматически завершать отключенные RDP сеансы пользователей через 8 часов, включите политику “Set time limit for disconnected session” = Enabled, и в выпадающем списке выберите 8 часов.

политика Set time limit for disconnected session

Сохраните изменения и обновите политики сервера (gpupdate /force). Новые настройки таймаутов будут применяться только к новым RDP сеансам, текущие сеансы придется завершить вручную.

Также можно задать лимиты времени RDP сеансов через реестр. Указанным выше политикам соответствую следующие DWORD параметры в ветке реестра HKLMACHINESOFTWAREPoliciesMicrosoftWindows NTTerminal Services 

  • MaxDisconnectionTime
  • MaxIdleTime
  • MaxConnectionTime
  • MaxDisconnectionTime
  • RemoteAppLogoffTimeLimit

В Windows Server 2008 R2 также можно было задать лимиты RDP сессий на хосте через специальную консоль tsconfig.msc (RD Session Host Configuration). Достаточно было запустить консоль, щелкнуть правой кнопкой по RDP-Tcp -> Properties. Настройки ограничения длительности сессий находятся на вкладке Sessions. Но в следующих версиях Windows Server эта консоль отсутствует (хотя вы можете вручную скопировать файлы tsadmin.msc и tsconfig.msc и использовать эти консоли и более новых версиях Windows Server).

лимиты rdp в консоли tsconfig.msc

Источник: https://winitpro.ru/index.php/2020/05/25/rdp-session-limits/

Понравилась статья? Поделить с друзьями:
  • Ограничение сайтов для детей windows 10
  • Обязательная проверка подписи драйверов как отключить windows 10
  • Ограничение прав пользователя в windows 10 групповой политикой
  • Ограничение прав пользователя windows server 2012
  • Ограничение по памяти windows 7 начальная