Службы удаленного рабочего стола заняты в настоящее время
Добрый день! Уважаемые читатели и гости, IT блога Pyatilistnik.org. Я очень часто пишу про всевозможные приколы, косяки и ошибки терминальных служб и просто служб удаленного рабочего стола. В прошлый раз, я вам рассказывал, что делать в ситуациях, когда невозможно загрузить профиль пользователя, так сказать временные профили. Тогда хоть удавалось попадать на сервер, сейчас даже и этого не получается, выскакивает ошибка, что "Задача, которую вы пытаетесь выполнить, не может быть завершена, потому что в настоящее время заняты службы удаленного рабочего стола". Давайте смотреть как решается данная проблема и с чем она связана.
Причины ошибки с занятыми службами RDP
Описываю ситуацию, есть арендованный, виртуальный сервер в vCloud Director. На нем настроен сервер терминалов на и подключены терминальные лицензии. Пользователь пытается подключить к нему, с помощью стандартного средства, окна RDP, но у него выскакивает сообщение об ошибке:
Или русский вариант: Задача, которую вы пытаетесь выполнить, не может быть завершена, потому что в настоящее время заняты службы удаленного рабочего стола. Попробуйте повторить попытку, через несколько минут. Остальные пользователи, по прежнему смогут логиниться на сервер
Или:
Как видите пользователя отфутболивает и он не может попасть на сервер.
Основные причины такого поведения
- Первый вариант, это заглючила служба удаленных рабочих столов
- Сильная загрузка сети на сервере с перемещаемыми профилями
- Проблема с профилем пользователя. Эта проблема возникает из-за проблемы синхронизации в службе профиля пользователя (profsvc) между рабочим потоком и основной служебной программой. Когда служба профиля пользователя останавливается, служба может быть занята, пытаясь очистить профили.
- Проблема с процессом csrss.exe. Эта проблема возникает из-за ситуации взаимоблокировки, которая возникает между процессом Csrss.exe и некоторыми приложениями (например, Microsoft Excel или Microsoft Visio).
- Системе может не хватать ресурсов на подключение, их может выедать, все та же IIS, которую нужно ограничивать.
- Проверьте наличие свободного места на диске C:\, видел и такое.
- Обязательно нужно изучить логи Windows, на предмет ошибок
Давайте разбираться, что нужно делать в такой ситуации.
Методы решения ошибки входа по RDP
И так, если вы все же словили ошибку "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", то не спешите расстраивается, она сто процентов решается, все только измеряется конечным результатом. В моем случае, виртуальная машина использовалась для разработки, поэтому ее использовали несколько человек.
- Если у вас есть физический, консольный или удаленный доступ к серверу, то зайдите на него и попробуйте разлогинить, того пользователя, кто испытывает трудности при входе. Для этого вы заходите в диспетчер задач, переходите на вкладку пользователи, где находите нужного вам. Выбираете его, щелкаете правым кликом и делаете "Выход из системы (Log off)". В большинстве случаев, этого достаточно, но не в моем. В диспетчере задач, я обнаружил странного пользователя с именем (4) или (5). У данного пользователя с ником (4) или (5), было открыто 4 процесса:
- Client Server Runtime Process
- Desktop Windows Manager
- Windows Logon Application
- Windows Logon User Interface
Мои попытки разлогинить его из диспетчера зада, оказались бесполезными. Я такое встречал уже, и видел когда было много таких пользователей (4), все решалось перезагрузкой сервера, лечилось на 100%, но в моем случае так как сервер использовался многими сотрудниками, то его трогать было нельзя, ищем другие варианты.
- Если перезагрузить ваш сервер не представляется возможным, то попробуйте выполнить вот такие действия. Я буду показывать их на Windows Server 2016, но они применимы и для других версии ОС Windows. Откройте командную строку cmd от имени администратора. Введите вот такую команду:
Она покажет всех залогиненных пользователей в терминальном сервере, обратите внимание, что тут так же есть пользователь (4), нас в данной выдаче интересует поле ID, это идентификатор пользователя. Он нам потребуется, чтобы грохнуть процесс csrss.exe, для конкретного пользователя. В моем случае ID 48.
Далее в командной строке, выполните команду:
у вас будут выведены, все процессы, которые запущены из под данного пользователя, нас будет интересовать csrss.exe и его PID.
Далее нужно свериться по диспетчеру задач, с этим PID, для этого на вкладке процессы, щелкните правым кликом по любому из столбцов и добавьте колонку PID.
В появившейся колонке PID,найдите нужный нам, в моем случае, это PID 26980, он соответствует процессу csrss.exe, пробуем его отключить, в диспетчере задач. По идее, это должно помочь устранить ошибку подключения "Задача, которую вы пытаетесь выполнить, не может быть завершена, потому что в настоящее время заняты службы удаленного рабочего стола. Попробуйте повторить попытку, через несколько минут. Остальные пользователи, по прежнему смогут логиниться на сервер".
- Если, этот метод вам не помог, то в некоторых случаях, с виртуальными машинами помогает вариант отключения и включения доступа по RDP
- Если, это не помогло и перезагрузка невозможна, попробуйте в случае с виртуальной машиной, произвести перезапуск службы удаленных рабочих столов. Надеюсь вам удалось решить проблему подключения "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" и вы продолжили работу.
Проверка загрузки сети и процессора
Так как при создании моей RDS HA фермы я применял концепцию перемещаемых профилей, не буду спорить, хорошо это или плохо, у каждого свое видение. Данная вариация хранит все пользовательские профили на выделенном сервере, в моем случае DFS HA сервера и при подключении пользователя к RDSH хосту идет загрузка этого профиля по сети. У меня это канал 10 ГБ и при нагрузке в 1100 человек я не испытываю проблем в час пик.
Но в один из дней стали поступать массовые сообщения, о проблеме со входом и формулировкой "Службы удаленного рабочего стола заняты в настоящее время". Я пошел в систему мониторинга, чтобы проверить нагрузку на сервер хранящий и передающий перемещаемые профили. В итоге увидел вот такую картину. В диспетчере задач мой сетевой интерфейс скушал все 10 ГБ/с. В оснастке "Монитор ресурсов" я увидел, что идет массовое скачивание перемещаемых профилей.
В Zabbix я отчетливо видел, что с 9 утра, когда пользователи ринулись на работу, сетевой интерфейс на сервере был забит на 100%
Так же привлекла высокая нагрузка на процессор (CPU), она была под 100%, что очень плохо.
Посмотрев процессы на сервере я увидел старого знакомого, антивирус Касперского, который после обновления агента просто скушал все процессорные мощности, после его деактивации, все пользователи успешно зашли на терминал. Получилось, что после обновления агента Касперского, он начал создавать новый индекс файлов, что есть на сервере, где он установлен. Вот график после его отключения.
С вами был Иван Семин, автор и создатель блога Pyatilistnik.org.
Помогло отключение и повторное разрешение «удаленных подключений к этому компьютеру», но только на один раз, в следующий раз проблема повторилась
Это решение следствия, а не причины. Увы….
Вот возможное решение проблемы/
Включаете эту политку и установите 1 минуту
Windows Components/Remote Desktop Services/Remote Desktop Session Host/Connections
Configure keep-alive connection interval