Поиск по сайту:

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


Когда пользователь закрывает окно сеанса RDP/RDS в терминальном клиенте (

mstsc.exe

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

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

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

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

Используя

quser

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

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

$connectionBrocker = “mun-rdscb.active-directory.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) } }

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

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

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

Если у вас есть ферма служб удаленных рабочих столов, развернутая на Windows Server, вы можете настроить параметры времени ожидания сеанса пользователя в настройках сбора RDS на вкладке Сеанс.

Укажите период времени, по истечении которого вы хотите завершить отключенный сеанс удаленного рабочего стола, в опции Завершить отключенный сеанс (по умолчанию продолжительность сеанса RDP не ограничена - Никогда ). Вы также можете установить максимальное время активного сеанса пользователя (Лимит активного сеанса) и завершить сеанс бездействия (Лимит бездействующего сеанса). Эти жесткие тайм-ауты применяются ко всем пользовательским сеансам в коллекции RDS.

В Windows Server 2022/2019/2016/2012R2 вы можете установить таймауты сеансов RDP с помощью групповых политик. Вы можете сделать это либо в редакторе GPO домена (

gpmc.msc

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

Настройки таймаутов сеансов RDP находятся в следующем разделе GPO: Конфигурация компьютера -> Политики -> Административные шаблоны -> Компоненты Windows -> Службы удаленных рабочих столов -> Узел сеансов удаленных рабочих столов -> Ограничения времени сеанса. Доступны следующие настройки тайм-аута удаленного рабочего стола:

  • Установить ограничение по времени для отключенного сеанса;

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

  • Установить ограничение времени для активных сеансов служб удаленных рабочих столов — это максимальное время любого сеанса RDP (даже активного), по истечении которого он переходит в отключенное состояние;

  • Завершить сеанс при достижении лимита времени — задает время, по истечении которого сеанс RDP будет завершен (выход из системы), а не отключен;

  • Установить ограничение по времени для выхода из сеансов RemoteApp.

По умолчанию эти параметры не настроены. Чтобы автоматически завершить все отключенные сеансы пользователей RDP через 8 часов, включите политику «Установить ограничение времени для отключенных сеансов» и выберите 8 часов в раскрывающемся списке.

Сохраните изменения и обновите параметры групповой политики на своем хосте RD (

gpupdate /force

). Новые настройки тайм-аута будут применяться только к новым сеансам RDP (текущие пользовательские сеансы на RDSH придется завершать вручную).

Настройки объекта групповой политики имеют приоритет над настройками тайм-аута в коллекции RDS.

Те же настройки тайм-аута RDP вы можете найти в разделе GPO пользователя: Конфигурация пользователя -> Административные шаблоны -> Компоненты Windows. Используя политику из раздела пользователей, вы можете более гибко настраивать группы пользователей с разными ограничениями продолжительности RDP-сессий.

Вы также можете установить ограничения времени сеанса RDP через реестр. Следующие параметры DWORD из раздела реестра HKLM\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services, соответствующие описанным выше параметрам групповой политики:

  • Макс.время отключения

  • Максимальное время простоя

  • Максконнектионтиме

  • Макс.время отключения

  • RemoteAppLogoffTimeLimit

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

Set-ItemProperty "HKLM:\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services" -Name MaxDisconnectionTime -Type 'DWord' -Value 900000

Вы также можете установить ограничения сеанса RDP на вкладке Настройки в свойствах локального (

lusrmgr.msc

) или пользователь домена (

dsa.msc

— Консоль «Пользователи и компьютеры Active Directory»). Здесь доступны следующие варианты:

  • Завершить отключенный сеанс;

  • Лимит активных сессий;

  • Лимит простоя сессии;

  • При достижении лимита сеансов или разрыве соединения: «Отключиться от сеанса» или «Завершить сеанс»;

  • Разрешить переподключение: «От любого клиента» или «Только от исходного клиента».

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

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

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

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

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

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

Узнайте больше о журналах подключений RDP.

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

Set-WmiInstance -Path "\\localhost\root\CIMV2\TerminalServices: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.

В некоторых случаях вы можете столкнуться с этой ошибкой в 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.

Это означает, что кто-то другой вошел в компьютер через RDP, когда количество одновременных сеансов RDP на компьютере ограничено параметром Ограничить количество подключений (, например, на настольной Windows доступен только один удаленный сеанс). версии). Или вы вошли на хост RDP с нового компьютера.

Вы можете разрешить несколько подключений под одной учетной записью к хосту RDP, используя параметр GPO Ограничить пользователей служб удаленных рабочих столов одним сеансом служб удаленных рабочих столов=Отключено (в разделе «Конфигурация компьютера» -> «Административные шаблоны» -> «Windows»). Компоненты -> Службы удаленных рабочих столов -> Хост сеансов удаленных рабочих столов -> Подключения).

Статьи по данной тематике