Настройка лимитов (таймаутов) для активных/отключенных RDP/RDS сессий в Windows
15.11.2022
itpro
Windows 10, Windows Server 2019
комментариев 25
Когда пользователь со своего компьютера закрывает окно своей RDP/RDS сессии в терминальном клиенте (mstsc.exe, RDCMan или RDP HTML WEB клиенте) простым нажатием по крестику в окне, без выполнения выхода (logoff), его сессия переходит из активного режима в режим disconnected (разъединённый сеанс). В этом режиме все запущенные пользователем программы, открытые документы и окна продолжают работать на удаленном сервере и потреблять ресурсы.
По-умолчанию RDP сессия пользователя в Windows может находится в состоянии disconnected до перезагрузки компьютера или явного ее завершения пользователем или администратором. Это довольно удобно, т.к. пользователь может в любой момент подключиться к своей старой сессии и продолжить работу с запущенными программами и открытыми документами.
На следующем скриншоте видно, что отключенные сессии пользователей на RDS сервере с Windows Server 2019 потребляют около 35% памяти сервера.

Кроме того незавершенные сессии могут блокировать открытые файлы на файловых серверах, вызывать проблемы с корректным сохранением данных в приложениях, профилях или User Profile Disks. Кроме наличие старых RDP сессий часто вызывает проблему блокировки учетной записи пользователей в домене после смены пароля (когда RDS сессии продолжает работать под старыми паролем пользователя).
С помощью команды quser можно узнать, когда начата 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 , `
@
Вы можете настроить максимальную длительность активных, отключенных и простаивающих (без активности пользователя) сессии для 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 коллекции.

В 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 -> Службы удаленных рабочих столов -> Узел сеансов удаленных рабочих столов -> Ограничение сеансов по времени). Доступны следующие политики таймаутов:
- Settimelimitfordisconnectedsession (Задать ограничение по времени для отключенных сеансов);
- SettimelimitforactivebutidleRemoteDesktopServicessessions (Задать ограничение времени для активных, но бездействующих сеансов служб удаленных рабочих столов) – политика позволяет завершить простаивающие RDP сессии, в которых отсутствует ввод со стороны пользователя (движение мышкой, ввод символов с клавиатуры);
- SettimelimitforactiveRemoteDesktopServicessessions (Задать ограничение по времени для активных сеансов служб удаленных рабочих столов) – максимальный срок для любой (даже активной) RDP сессии пользователя, после которого она переводится в состояние disconnected;
- EndSessionwhentimelimitsarereached (Завершать сеанс при достижении ограничения по времени) – через какое время нужно завершать RDS сессию (logoff) вместо перевода ее в disconnected;
- Set time limit for logoff of RemoteApp sessions (Задать предел для выхода из сеансов RemoteApp).

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

Сохраните изменения и обновите настройки групповых политик в Windows (gpupdate /force). Новые настройки таймаутов будут применяться только к новым RDP сеансам, текущие сеансы придется завершить вручную.
Настройки GPO имеют более высокий приоритет, чем настройки таймаутов в коллекции RDS.
Параметры таймаутов для RDP сессий, которые задаются политиками можно также настроить напрямую через реестр. Указанным выше политикам соответствую следующие DWORD параметры в ветке реестра HKLMACHINE\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services
- MaxDisconnectionTime
- MaxIdleTime
- MaxConnectionTime
- MaxDisconnectionTime
- RemoteAppLogoffTimeLimit
Например, чтобы установить максимальную продолжительность для отключенной RDP сессии в 15 минут (90000 мс), нужно изменить параметр реестра с помощью такой команды PowerShell:
Set-ItemProperty «HKLM:\SOFTWARE\Policies\Microsoft\Windows NT\Terminal 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

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

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

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

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

Вы можете отключить это предупреждение, установив в классе WMI Win32_TSSessionSettings значение EnableTimeoutWarning = 0.
Set-WmiInstance -Path «\\localhost\root\CIMV2\TerminalServices:Win32_TSSessionSetting.TerminalName=’RDP-Tcp'» -Argument @
Теперь, когда Windows будет автоматически завершать простаивающие RDP сеансы, пользователь получит от RDP клиента такое сообщение:

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

Это означает, что кто-то другой вошел на компьютер через 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).

Предыдущая статья Следующая статья
3 простых шага по исправлению ошибок idletimer.exe
Очистите мусорные файлы, чтобы исправить idletimer.exe , которое перестало работать из-за ошибки.
- Запустите приложение Asmwsoft Pc Optimizer.
- Потом из главного окна выберите пункт «Clean Junk Files».
- Когда появится новое окно, нажмите на кнопку «start» и дождитесь окончания поиска.
- потом нажмите на кнопку «Select All».
- нажмите на кнопку «start cleaning».
Очистите реестр, чтобы исправить idletimer.exe , которое перестало работать из-за ошибки
- Запустите приложение Asmwsoft Pc Optimizer.
- Потом из главного окна выберите пункт «Fix Registry problems».
- Нажмите на кнопку «select all» для проверки всех разделов реестра на наличие ошибок.
- 4. Нажмите на кнопку «Start» и подождите несколько минут в зависимости от размера файла реестра.
- После завершения поиска нажмите на кнопку «select all».
- Нажмите на кнопку «Fix selected».
P.S. Вам может потребоваться повторно выполнить эти шаги.
Как удалить заблокированный файл
- В главном окне Asmwsoft Pc Optimizer выберите инструмент «Force deleter»
- Потом в «force deleter» нажмите «Выбрать файл», перейдите к файлу idletimer.exe и потом нажмите на «открыть».
- Теперь нажмите на кнопку «unlock and delete», и когда появится подтверждающее сообщение, нажмите «да». Вот и все.
Настройка Windows для исправления критических ошибок idletimer.exe :
- Нажмите правой кнопкой мыши на «Мой компьютер» на рабочем столе и выберите пункт «Свойства».
- В меню слева выберите » Advanced system settings».
- В разделе «Быстродействие» нажмите на кнопку «Параметры».
- Нажмите на вкладку «data Execution prevention».
- Выберите опцию » Turn on DEP for all programs and services . » .
- Нажмите на кнопку «add» и выберите файл idletimer.exe , а затем нажмите на кнопку «open».
- Нажмите на кнопку «ok» и перезагрузите свой компьютер.
Как другие пользователи поступают с этим файлом?
Всего голосов ( 202 ), 133 говорят, что не будут удалять, а 69 говорят, что удалят его с компьютера.
Как вы поступите с файлом idletimer.exe ?
Некоторые сообщения об ошибках, которые вы можете получить в связи с idletimer.exe файлом
- ( idletimer.exe ) столкнулся с проблемой и должен быть закрыт. Просим прощения за неудобство.
- idletimer.exe . Эта программа не отвечает.
- ( idletimer.exe ) — Ошибка приложения: the instruction at 0xXXXXXX referenced memory error, the memory could not be read. Нажмитие OK, чтобы завершить программу.
- ( idletimer.exe ) не является ошибкой действительного windows-приложения.
- ( idletimer.exe ) отсутствует или не обнаружен.
IDLETIMER.EXE
Описание файла: idletimer.exe Файл idletimer.exe из unknown company является частью Idle Timer Utility. idletimer.exe , расположенный в c:windows.old\ program files\ (x86)intel retail ipos holiday 2012utilidleidletimer.exe с размером файла 813000 байт, версия файла Unknown version, подпись 8e751c00aa0d5d98e6ca4d626e0dd8aa.
Проверьте процессы, запущенные на вашем ПК, используя базу данных онлайн-безопасности. Можно использовать любой тип сканирования для проверки вашего ПК на вирусы, трояны, шпионские и другие вредоносные программы.
"Idle timer expired" message when using Controller-on-Cloud, if user does not press keyboard or mouse for over 30 minutes
User launches Controller on cloud. After a while, the user takes a break (for example, goes to lunch). User returns to their PC. A message is on the screen.
Symptom

Idle timer expired
Session has been idle over its time limit.
It will be disconnected in 2 minutes.
Press any key now to continue session.
Cause
User has not pressed a key (on their keyboard) or moved their mouse inside the Controller Citrix session, for a length of time longer than the timeout value (30 minutes).
By default, Controller-on-Cloud 10.3.1 Citrix servers are configured to have a Microsoft/Citrix remote session ‘active but idle‘ timeout of 30 minutes.
— If this value is exceeded (the user has not used their keyboard/mouse inside the Controller program), then users will see the message
Soon afterwards, the user’s session will become ‘disconnected’.
— This means that it will continue to run (in the background, on the IBM Cloud servers) but the user will not see it on their screen.
— If the user then re-launches Controller then they will ‘reconnect’ with that existing/disconnected session, so the user will be able to carry on (in the system) from the same state (as they left it, when it was disconnected) with no loss of work/data.
Resolving The Problem
This is by design.
IBM Cloud have deliberately implemented this for security reasons. The idle timeout has been enabled because of Security assessments and GDPR rules.
- IBM Cloud will not allow these GPOs to be removed/changed modified
- Therefore it is not possible to either (a) disable the timeout or (b) increase the timeout value.
Workaround:
There are several methods:
If the end user sees the message, they must click ‘OK’ (to acknowledge the message) then carry on with work.
If the user did not see the message, then their session will have been logged off. Therefore they will need to:
- Re-logon to the Citrix website
- Re-launch the Controller icon.
By doing this, they will reconnect to their old/disconnected session (and not lose any work).
Fixed: Idle Timer Expired Keeps Popping Up [3 Solutions]
This post introduces how to fix idle timer expired keeps popping up when using RDP. If you are facing the same problem, you are going to the right place. We prepare several tested solutions for you. Read on to learn more!

By Hester
/ Last Updated January 11, 2023
Why do I keep getting idle timer expired?
Hi, I, like most, use RDP to do some critical work on my remote computer at once. As of yesterday ‘idle timer expired’ keeps popping up across my monitor from time to time. If I didn’t notice it, I will get logged off, I need to then re-log on, re-open my now potentially lost work, and start again. Why do I keep getting idle timer expired? How to keep the RDP session alive?”
— Question from a user

“Idle timer expired” occurs if a policy setting enforces a time limit for idle Remote Desktop sessions. If an active session has not received user input for the time that is specified in the policy setting, the session disconnects.
How to fix idle timer expired keeps popping up
RDP is a Windows built-in remote desktop tool that is widely used among users. However, “idle timer expired” may cause a lot troubles to many users. Here in this part ,we will cover how to avoid session timeout.
Solution1. Configure timeout settings in Group Policy
The first solution is to change RDP session timeout group policy.
Step 1.Press Win+R, type in «gpedit.msc”, and hit OK to open Local Group Policy Editor.

Step 2. Go to: Computer Configuration > Administrative Templates > Windows Components > Remote Desktop Services > Remote Desktop Session Host > Session Time Limits. Click Set time limit for disconnected sessions on the right pane.

Step 3. Tick Enabled and select Never beside End a disconnected session, then press OK to take effect.

Step 4. Back to Session Time Limits interface, click Set time limit for active but idle Remote Desktop Services session, tick Enabled, and select Never beside Idle session limit. Click OK after that.

Step 5. Back to Session Time Limits interface, click Set time limit for active Remote Desktop Services session, tick Enabled, select Never beside Active session limit, and hit OK.

Solution2. Add a registry key
When idle timer expired keeps popping up, you can also add a registry key to keep the RDP session alive.
Step 1. Press Win + R, type in “regedit”, and press Enter.

Step 2. Navigate to: Computer > HKLM\SYSTEM > CurrentControlSet > Control > Terminal Server. Right click WinStations, and select New>DWORD (32-bit) Value.

Step 3. Name it as KeepAliveEnable, set the value data to 1, and tick “Decimal” under Base, then click OK to take effect.

Solution 3. Switch to RDP alternative without time limit
If both the solutions do not work out or you don’t want to perform the complicated settings. You can switch to the best RDP alternative AnyViewer to perform remote tasks without time limit.
As all-in-one remote desktop software, AnyViewer supports safe attended/unattended remote access, high-speed file transfer, convenient remote support, etc. Besides, it has the following advantages over RDP:
No time limit. Fast & Stable remote connection. Over-internet supported. Windows compatible. (including Windows Home/Standard edition) Considerate built-in options. (chat, image quality, resolution, etc.)
Download AnyViewer on your devices, and then we will show you how to establish a remote session.
Step 1. Launch AnyViewer on host computer, go to Log in, and click Sign up.

Step 2. Fill the information and click Sign up.

Step 3. Launch AnyViewer on client computer, log in to the same account, and the client PC will be assigned to the account automatically.

Step 4. Go to Device, select the computer you want to remote into, and click One-click control.

Then you can see the remote computer and control it, there are a lot of built-in operations in the toolbar for you to improve the efficiency.

Notes:✎. You can also upgrade to a Professional or Enterprise plan then the following rights will thereafter be yours: Assign more devices. More concurrent connection channels for an Enterprise plan. More simultaneous sessions. Transfer unlimited files at once. .
Conclusion
This post introduce how to fix idle timer expired keeps popping up when performing RDP. If you are not familiar with the settings mentioned above, we recommend you use AnyViewer to achieve one-click remote control without time limit.