Грешка в RDP Не може да завърши заявената операция, Услугите за отдалечен работен плот са заети

Периодично някои потребители не могат да влязат в RDS сървъра на фермата на Windows Server чрез стандартния клиент rdp с грешка:

Не може да завърши заявената операция, тъй като услугите за отдалечен работен плот в момента са заети. Моля, опитайте отново след няколко минути. Останалите потребители все още трябва да могат да влизат..

Задачата, която се опитвате да направите, не може да бъде изпълнена, тъй като услугите за отдалечен работен плот в момента са заети. Моля, опитайте отново след няколко минути. Останалите потребители все още трябва да могат да влизат.

Също така срещахме тази картина няколко пъти: в раздела "Потребители" на мениджъра на задачи RDS на хоста има много потребители, които са спрени от сесията с имена (4) вместо потребителско име и със състояние Прекъснато.

Проблемът възниква при всички версии на Windows Server: 2008 R2, 2012 R2, 2016 и 2019.

Грешката може да възникне по различни причини:

  • Грешка в услугата за отдалечен работен плот;
  • Грешка с процеса csrss.exe;
  • Проблем с потребителския профил или с profsvc услуга;
  • Липса на RAM или дисково пространство на RDSH сървъра;
  • Неправилни настройки на груповата политика.

За съжаление, в момента няма официално решение от Microsoft, което напълно да реши проблема, всичко се свежда до елиминиране на симптомите.

Почти винаги проблемът се решава чрез нулиране на сесията на проблемния потребител и рестартиране на RDS сървъра, но в изключителни ситуации това може да не е достатъчно. Нека преминем над решенията, като започнем от най-леките.

# 1 - Проверете ресурсите на RDS сървъра

Уверете се, че сървърът разполага с достатъчно ресурси, тъй като тази грешка може да възникне поради липса на RAM или дисково пространство. Проверете натоварването на RAM паметта и дали има достатъчно свободно място на диска, на който е инсталирана операционната система (поне 1 GB трябва да е безплатно). Също така проверете журнала на събитията за критични RDS грешки..

Ако има достатъчно ресурси, преминете към следващата опция..

# 2 - Нулиране на потребителска сесия и прекратяване на окачени процеси в RDS сесия

Първо, нека се опитаме да намерим и принудително да нулираме сесията на потребител, който не може да влезе в RDS сървъра. В диспечера на задачите в раздела Потребители намерете желания потребител и кликнете върху „Изход“ през контекстното меню. В повечето случаи това е достатъчно, но понякога в диспечера на задачите можете да намерите много затворени сесии с името „(4)“ вместо потребителското име. По правило 4 процеса ще присъстват в затворена сесия:

  • Процес на изпълнение на клиентския сървър (csrss.exe)
  • Desktop Windows Manager (dwm.exe)
  • Приложение за влизане в Windows (winlogon.exe)
  • Потребителски интерфейс за вход в Windows

Първо, опитайте да прекратите всички окачени сесии с (4) чрез диспечера на задачите, както е описано по-горе. Ако това не помогне, най-добре е да рестартирате сървъра, но често няма такава възможност, затова се опитваме да разрешим проблема без рестартиране:

  1. Стартирайте командния ред като администратор и въведете: запитване сесия
    Той ще показва всички потребители и техните сесии на терминалния сървър. Изходът на командата има 3 интересни за нас колони: SESSIONNAME, USERNAME и ID. Намерете потребител (4) и съответния му идентификационен номер в този пример ID 2. Трябва да завършим процеса csrss.exe, който работи в рамките на тази сесия, първо го намираме.
  2. В командния ред въведете: процес на запитване / id 2
    Командата ще покаже всички процеси, които се изпълняват в тази сесия. Трябва да намерим процеса csrss.exe и съответстващия му PID. В моя случай PID ще бъде 5140. Трябва да завършим този процес..
  3. Проверете мениджъра на задачите. Отворете мениджъра на задачи, отидете на раздела Подробности и намерете PID и процеса, от който се нуждаете.Ако нужният ви PID отговаря на процеса csrss.exe, след това прекратете процеса през контекстното меню и крайната задача или чрез командния ред: taskkill / F / PID 5140

Това трябва да се направи с всеки потребител „(4)“, ако има няколко.

# 3 - Нулиране на потребителска сесия чрез команден ред

Ако не успяхте да излезете от „проблемния“ потребител чрез мениджъра на задачи, можете да опитате да нулирате сесията на потребителя чрез командния ред.

    1. Изпълнете командния ред като администратор и въведете запитване сесия

      Копирайте SESSIONNAME на проблемния потребител.

    2. въведете сесия за нулиране . Вместо това въведете името на необходимата сесия, както е показано на екрана

Това трябва да се направи с всеки проблемен потребител. Сега можете да опитате да влезете, проблемът трябва да бъде решен. Ако имате възможност да рестартирате сървъра, тогава е по-добре да направите това.

# 4 - Проверете настройките за лицензиране на хост на RDS

Проверете дали правилният лицензионен сървър и тип лиценз (CAL на потребител / CAL на устройство) са посочени на вашия хост на RDSH.

Получих грешката „Не мога да завърша заявената операция, тъй като услугите за отдалечен работен плот са заети в момента“ веднъж, когато забравих да посоча адреса на сървъра с ролята на лиценз за отдалечен работен плот след инсталирането на ролята на RDSH. В този случай двама потребители се свързват нормално, а третият получава грешка.

Адресът на сървъра с RDS лицензи може да бъде посочен:

      • В настройките за колекция RDS: Задачи -> Редактиране на свойства за внедряване -> RD лицензиране;
      • Чрез GPO: Използвайте посочените лицензни сървъри за отдалечен работен плот (Конфигурация на компютъра -> Политики -> Шаблони на администратори -> Компоненти на Windows -> Услуги за отдалечен работен плот -> Хост на отдалечен работен плот -> Лицензиране)
      • Използване на PowerShell (вижте статията „Режимът за лицензиране не е зададен за сървъра на хоста на отдалечен работен плот“).

# 5 - Премахване на ограничението на RDP връзки в GPO

Чрез груповите правила можете да ограничите броя на едновременните RDS връзки. По подразбиране това правило е деактивирано..

Използвайки gpresult, трябва да проверите дали правилото е активирано и каква стойност е посочена в него..

      1. Изпълнете командния ред като администратор и въведете gpresult / H c: \ gpresult.html
      2. Отворете файла gpresult.html, който се намира в корена на диск C. Това е обикновен .html файл, препоръчително е да го отворите чрез Internet Explorer, тъй като може да не се показва правилно в други браузъри;
      3. В раздела Конфигурация на компютъра -> Административни шаблони -> Компоненти на Windows -> Услуги за отдалечен работен плот -> Хост на отдалечен работен плот \ Връзки намирам Ограничете броя на връзките, или в търсенето на страницата въведете Ограничете броя на връзките.

Ако няма такава политика, тя не се прилага и няма ограничения за броя на едновременните връзки. Ако има правило и е посочен броят на едновременните връзки, променете стойността му на нужния номер. Можете да промените груповата политика чрез щракване gpedit.msc, ако политиката е конфигурирана чрез GPO за домейни, редактирайте съответната политика чрез gpmc.msc. След като редактирате правилото, не забравяйте да въведете командния ред gpupdate / force за незабавно прилагане на политиката.

# 6 - Персонализирани решения: ако всичко друго не успее

Ако имате достатъчно ресурси, в дневника няма грешки, не можете да рестартирате и нулирането на сесията по някаква причина не помогна, тогава трябва да опитате следните опции:

    • Проверете дали режимът на източване не е активиран на RDS сървъра, което не позволява на потребителите да получават нови RDP връзки: chglogon.exe / QUERY . Ако командата върне съобщението „Новите потребителски входове са ЗАБРАНЕНИ, но връзките към съществуващите сесии са ВКЛЮЧЕНИ“, Деактивирайте режима за източване: chglogon.exe / активиране
    • В настройките за RDP връзка (mstsc.exe) на клиента mstsc махнете отметката от квадратчето „Устойчиво ратайно кеширане“;
    • Рестартирайте RDS услугата. Въведете командния ред с права на администратор net stop termservice и net start termservice. Или рестартирайте услугата дистанционно с помощта на PowerShell: Get-Service termservice -ComputerName msk-rds1 | Рестартирайте услугата
    • Принудителни процеси за убиване tstheme.exe;
    • Препоръчва се да приложите всички най-нови актуализации за вашата версия на Windows, да използвате стандартните инструменти за актуализация.