
В некоторых случаях пользователи не могут подключиться к хостам фермы RDS под управлением Windows Server с помощью встроенного клиента RDP (mstsc.exe) со следующей ошибкой:
The task you are trying to do can't be completed because Remote Desktop Services is currently busy. Please try again in a few minutes. Other users should still be able to log on.
В этом случае администратор хоста RDS может видеть множество застрявших пользовательских сессий с именем (4) вместо имен пользователей и Отключено статус на вкладке «Пользователи» в «Диспетчере задач».
Проблема возникает во всех текущих версиях Windows Server: 2012 R2, 2016, 2019 и 2022.
Ошибка может возникать по нескольким причинам:
- Ошибка в работе служб удаленных рабочих столов;
- Ошибка в процессе csrss.exe;
- Проблема с профилем пользователя или службой profsvc;
- Нехватка оперативной памяти или места на жестком диске на хосте RDS;
- Неправильные настройки групповой политики.
К сожалению, не существует официального решения Microsoft, которое могло бы полностью устранить проблему. Все, что вы можете сделать, — это избавиться от симптомов.
Устранение неполадок почти всегда включает сброс сеанса RD проблемного пользователя или перезапуск сервера RDS, но в некоторых случаях проблема сохраняется. Давайте рассмотрим возможные решения, начиная с самого простого
- Проверка производительности хоста RDS и доступных ресурсов
- Сброс сеансов удаленного рабочего стола на RDS
- Убить сеанс пользователя удаленного рабочего стола с помощью командной строки
- Проверка параметров лицензирования на хосте RDS
- Отключение ограничения максимального количества подключений RDP в GPO
- Другие способы устранения проблем с занятой службой RDP
Проверка производительности хоста RDS и доступных ресурсов
Поскольку эта ошибка может возникать из-за нехватки оперативной памяти или свободного места на диске, убедитесь, что сервер располагает достаточными ресурсами. Проверьте, достаточно ли свободной оперативной памяти и места на жестком диске, где установлена операционная система (должно быть не менее 1 ГБ свободного места), очистите профили пользователей RDS от старых файлов и удалите старые (неиспользуемые) профили пользователей. Также проверьте журнал событий на наличие критических ошибок в работе служб Remote Desktop Services и User Profile Service (profsvc).
Если свободных ресурсов достаточно, перейдите к следующему варианту.
Сброс сеансов удаленного рабочего стола на RDS
Прежде всего, попробуйте найти и сбросить сессию пользователя, который не может войти на сервер RDS с ошибкой «Remote Desktop Service is currently busy
«. Найдите пользователя на вкладке «Пользователи» в диспетчере задач и нажмите кнопку Выйти из системы в контекстном меню. В большинстве случаев это решит проблему, но иногда вы можете обнаружить в диспетчере задач несколько зависших сеансов с именем (4) вместо имени пользователя. Зависший сеанс пользователя RDS обычно имеет 4 запущенных процесса::
- Client Server Runtime Process (csrss.exe)
- Desktop Windows Manager (dwm.exe)
- Приложение для входа в систему Windows (winlogon.exe)
- Пользовательский интерфейс входа в Windows
Попробуйте сбросить все зависшие (4) сеансы RDS с помощью диспетчера задач, как описано выше. Если это не поможет, вам придется вручную завершить запущенные процессы в этих сеансах.
- Откройте командную строку и выполните команду:
query session
Команда выводит список всех пользователей и их сессий на хосте RDS. В выводе есть 3 столбца, которые нам нужны: SESSIONNAME, USERNAME и ID. Найдите
(4)
пользователя и соответствующий ID, в данном примере это ID 2. Вы должны убитьcsrss.exe
процесс, запущенный в этом сеансе; - Выполните команду:
query process /id 2
Команда показывает все процессы, запущенные в сессии с указанным идентификатором. Нам нужно найти PID процесса csrss.exe. В моем случае PID 5140. Вам нужно убить этот процесс.
- Убейте процесс csrss.exe по его PID:
taskkill /F /PID 5140
Когда процесс csrss.exe завершается, все остальные процессы в сеансе пользователя автоматически завершаются. Это позволяет завершать сеансы зависших пользователей RDS без перезапуска сервера.
Сделайте это для каждого (4) пользователя, если их несколько.
Также, если вы работаете на ненадежных соединениях, мы рекомендуем установить параметр GPO Настройка интервала соединения keep-alive на 1 минута (Конфигурация компьютера -> Административные шаблоны -> Компоненты Windows -> Службы удаленных рабочих столов -> Хост сеансов удаленных рабочих столов -> Соединения).
Убийство сеанса пользователя удаленного рабочего стола с помощью командной строки
Если вам не удалось выйти из системы, вы можете попробовать сбросить сеанс пользователя RDS из командной строки:
- Откройте командную строку от имени администратора и выполните команду:
query session
- Завершите сеанс пользователя, используя его SESSIONNAME или ID. Например:
reset session rdp-tcp#16
или:
reset session 3
Это нужно сделать для каждого проблемного пользователя RDS. Теперь вы можете попробовать войти в систему, проблема должна быть решена.
Если сервер RDS не позволяет войти в систему даже под учетной записью локального администратора, вы можете удаленно получить список пользовательских сессий на компьютере
qwinsta /server:mun-rds01
Затем можно удаленно завершить зависшую сессию:
reset session rdp-tcp#16 /server:mun-rds01
Проверка параметров лицензирования на хосте RDS
Убедитесь, что сервер лицензий и тип лицензии (CAL Per User/ CAL Per Device), настроенные на хосте RDSH, верны.
Адрес сервера с лицензиями RDS может быть указан:
- В настройках коллекции RDS: Tasks -> Edit Deployment Properties -> RD Licensing -> Укажите сервер лицензий;
- С помощью параметра групповой политики Использовать указанные серверы лицензий Remote Desktop (Конфигурация компьютера -> Политики -> Шаблоны администратора -> Компоненты Windows -> Службы удаленных рабочих столов -> Хост сеанса удаленного рабочего стола -> Лицензирование)
- Использование PowerShell (см. статью Режим лицензирования для узла сеанса удаленного рабочего стола не настроен).
Отключение ограничения максимального количества подключений RDP в GPO
Вы можете использовать групповые политики для ограничения количества одновременных (параллельных) RDS-соединений. По умолчанию эта политика не настроена. Это означает, что максимальное количество подключений не ограничивается хостом RDSH.
Используйте gpresult, чтобы проверить, включена ли политика и какое значение она имеет.
- Выполните следующую команду в поднятой командной строке:
gpresult /H c:\gpresult.html
- Откройте файл gpresult.html, расположенный в корне диска C. Это обычный .html-файл, который можно открыть с помощью браузера (Internet Explorer по умолчанию отключен в современных сборках Windows, и вы должны использовать MS Edge);
- Найдите параметр GPO с именем Ограничение количества подключений [Конфигурация компьютера -> Административные шаблоны -> Компоненты Windows -> Службы удаленных рабочих столов -> Хост сеанса удаленного рабочего стола\Connections или введите Ограничение количества соединений для поиска на странице.
Если такой политики нет, то она не применяется и ограничений на количество одновременных подключений нет. Если политика есть и указано количество одновременных подключений, измените ее значение на нужное вам. Вы можете настроить параметр GPO с помощью локального редактора групповой политики (gpedit.msc
), а если политика задана через GPO домена, отредактируйте ее с помощью редактора GPO домена (gpmc.msc
). После этого не забудьте запустить программу gpupdate /force
, чтобы немедленно применить новые параметры групповой политики.
Другие способы устранения проблем с занятой службой RDP
Если на хосте достаточно свободных ресурсов, в журналах RDP нет ошибок, сброс сессии пользователя по каким-то причинам не помог, а перезапустить сервер RDSH сразу не удается, попробуйте следующие варианты:
- Убедитесь, что хост RDS не находится в режиме Drain, который не позволяет пользователям создавать новые RDP-соединения:
chglogon.exe /QUERY
. Если команда выдает результат ‘Вход новых пользователей ЗАПРЕЩЕН, но повторные подключения к существующим сессиям ЗАПРЕЩЕНЫ’, отключите режим Drain:chglogon.exe /enable
- Снимите галочку с пункта Постоянное кэширование растровых изображений опция в настройках RDP-соединения в
mstsc.exe
клиента. Попробуйте использовать модем 56 кбит/с для оптимизации производительности; - Перезапустите службу удаленных рабочих столов с помощью команд:
net stop termservice
иnet start termservice
. Или перезапустите службу удаленно с помощью PowerShell:Get-Service termservice –ComputerName mun-rdsh1 | Restart-Service
- Убить все tstheme.exe процессы;
- Рекомендуется установить все последние обновления для вашей версии Windows. Используйте стандартные средства Windows Update или модуль PSWindowsUpdate PowerShell.
- На Windows Server 2012 R2 в Event Viewer может появиться событие ID 20499 «Службы удаленных рабочих столов слишком долго загружают конфигурацию пользователя с сервера…«. Чтобы решить эту проблему, добавьте параметр fQueryUserConfigFromLocalMachine . запись реестра:
REG ADD "HKLM\SYSTEM\CurrentControlSet\control\Terminal Server\Winstations\RDP-Tcp" /v fQueryUserConfigFromLocalMachine /t REG_DWORD /d 1 /f
REG ADD "HKLM\Software\Policies\Microsoft\Windows NT\Terminal Services" /v fQueryUserConfigFromLocalMachine /t REG_DWORD /d 1 /f - Если Citrix установлен на вашем хосте Windows и на нем имеется большое количество отключенных сеансов на сервере VDA, вы можете решить проблему, создав параметр SeTokenDoesNotTrackSessionObject запись реестра:
REG ADD "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Kernel" /v SeTokenDoesNotTrackSessionObject /t REG_DWORD /d 1 /f
- Проверьте службу профиля пользователя (
profsvc
) журналы. Если вы используете User Profile Disk (UPD) или профили FSLogix на Windows Server, убедитесь, что файловый сервер, содержащий файлы профилей, доступен и не испытывает проблем с производительностью. Кроме того, при использовании UPD на Windows Server 2019/2016 создайте файл DeleteUserAppContainersOnLogoff параметр реестра, который устранит проблемы со многими правилами брандмауэра Windows Defender, которые создаются для приложений UWP Windows Store при каждом входе пользователя в систему.Это описано в статье Низкая производительность RDS на Windows Server 2016/2019 с дисками пользовательского профиля.