Удаление неактивных портов TS на RDS ферме при ошибке ID 7011

Удаление неактивных портов TS на RDS ферме при ошибке ID 7011

RDS LogoДобрый день! Уважаемые читатели и гости одного из крупнейших IT блогов России Pyatilistnik.org. В прошлый раз я вам подробно рассказал, как сделать из Windows 10 терминальный сервер, позволяющий одновременно работать, большому количеству людей. Сегодня я хочу вам рассказать, что вы еще можете оптимизировать на свой RDS ферме, чтобы она могла работать стабильно, без зависаний и без проблем с поврежденными профилями. В данной заметке расскажу, что такое неактивные порты TS, мы рассмотрим причины и решение ошибки "Превышение времени ожидания (240000 мс) при ожидании ответа транзакции от службы UmRdpService". Думаю, что мой опыт оптимизации вам окажется полезен.

Описание проблемы на сервере RDSH

И так, есть RDS ферма HA. На одном из серверов удаленного подключения (RDSH) появляется несколько ошибок:

Ошибка в журнале системы: ID 7011 "Превышение времени ожидания (240000 мс) при ожидании ответа транзакции от службы "ScDeviceEnum"

ID 7011 "Превышение времени ожидания (240000 мс) при ожидании ответа транзакции от службы "ScDeviceEnum

Ошибка в журнале системы: ID 7011: Превышение времени ожидания (240000 мс) при ожидании ответа транзакции от службы "UmRdpService"

Превышение времени ожидания (240000 мс) при ожидании ответа транзакции от службы "UmRdpService"

Ошибка в журнале системы: ID 7011: Превышение времени ожидания (240000 мс) при ожидании ответа транзакции от службы "NcbService"

ID 7011: Превышение времени ожидания (240000 мс) при ожидании ответа транзакции от службы "NcbService

Сам сервер терминалов работает на операционной системе Windows Server 2012 R2, ранее на нем периодически возникали другие проблемы:

Как найти и удалить неактивные порты TS

Одной из причин такого нестабильного поведения операционной системы Windows Server с ролью терминальных служб, является накопление неактивных портов TS от перенаправляемых принтеров. Из-за этого может зависать ряд служб, как например "UmRdpService" или диспетчер печати. В таких ситуациях вы должны их очищать, дабы держать вашу RDS ферму в рабочем состоянии.

Для начала давайте узнаем, где располагаются данные неактивные TS порты. Откройте редактор реестра Windows и перейдите в раздел:

HKLM\SYSTEM\CurrentControlSet\Control\DeviceClasses\{28d78fad-5a12-11d1-ae5b-0000f803a8c2}\##?#ROOT#RDPBUS#0000#{28d78fad-5a12-11d1-ae5b-0000f803a8c2}

Port Description и его значение Inactive TS Port

Как видите в моем пример, тут огромное количество старых, не актуальных записей #TS001 и так далее, вплоть до #TS991. Обратите внимание, на ключ реестра Port Description и его значение Inactive TS Port, которое явно ссылается, на что-то чего уже нет. Вот из-за такой захламленности RDS ферма может работать не так эффективно и стабильно. В ветке обсуждения на Microsoft, так же обсуждалась проблема долгого времени входа в систему при установке сеанса удаленного рабочего стола на сервере RDS фермы.

https://support.microsoft.com/en-us/help/2655998/long-logon-time-when-you-establish-an-rd-session-to-a-windows-server-2

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

Все, что нужно, так это просто удалить все эти ветки реестра, это хорошо когда их 10 или 15, но когда сотни, уже сложнее. Для замены рутинной работы, есть замечательная утилита InactiveTSPortList.exe и ее продолжение для связке с PowerShell DeleteInactivePortSilently.exe.

Скачать InactiveTSPortList.exe и DeleteInactivePortSilently.exe можно у меня с сайта или у автора данной утилиты https://archive.codeplex.com/?p=inactivetsport

Открываем командную строку от имени администратора и переходим в расположение утилиты через команду cd и путь. Вводим команду для вызова справки утилиты InactiveTSPortList.exe.

InactiveTSPortList.exe /?

Как видим есть два ключа:

  • InactiveTSPortList /r - показывает список неактивных TS портов в системе
  • InactiveTSPortList /d - удаляем все неактивные TS порты от перенаправляемых устройств

InactiveTSPortList.exe

Для начала я вывожу список всех неактивных портов, пишем InactiveTSPortList /r. как видите получился внушительный список.

Вывод неактивных портов InactiveTSPortList.exe

Теперь удаляем все неактивные порты, если боитесь, то можете до этого произвести экспорт данной ветки, на случай восстановления реестра. вводим InactiveTSPortList /d и видим, что записи, типа #TS991 will be deleted удалены.

Удаление неактивных портов TS InactiveTSPortList

Проверим еще раз наличие проблемных, мусорных записей и видим. что у меня уже нет "Inactive TS Port".

Чистый реестр без Inactive TS Port

Проверяем наш куст реестра и видим, что все чисто

HKLM\SYSTEM\CurrentControlSet\Control\DeviceClasses\{28d78fad-5a12-11d1-ae5b-0000f803a8c2}\##?#ROOT#RDPBUS#0000#{28d78fad-5a12-11d1-ae5b-0000f803a8c2}

Чистый реестр без Inactive TS Port-2

далее для ошибки "Превышение времени ожидания (240000 мс) при ожидании ответа транзакции от службы UmRdpService, NcbService, ScDeviceEnum" компания Microsoft советует создать один ключ реестра:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\

Находим тут ключ ServicesPipeTimeout, если его нет, то создаем REG-DWORD. В моем примере стоит сейчас значение 240000, я увеличу его до 6 секунд. это 60000

https://social.technet.microsoft.com/Forums/ru-RU/4e27b639-e53b-4148-8653-deb4092dbf19/105410891090107210851086107410821072-10891083109110781073?forum=ws2008r2ru

ServicesPipeTimeout

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

Еще я вам советую отключить параметры сетевого интерфейса:

  • netsh int tcp show global - Смотрим текущее состояние
  • netsh int tcp set global chimney=disabled
  • netsh int ip set global taskoffload=disabled
  • netsh int tcp set global rss=disabled (Под вопросом)

Превышение времени ожидания (240000 мс)

После внесения изменений вам необходимо перезагрузить систему, кстати из-за данного параметра taskoffload в Windows Server 2012 R2 могут появляться черные экраны при RDP подключении

Так же не забываем в командной строке выполнить по очереди три команды, по выявлению проблем с целостностью системных файлов и ошибок на диске.

  • sfc /scannow после 
  • Dism /online /cleanup-image /restorehealth
  • и затем ChkDsk /r, потом перезагрузка

sfc /scannow

Могу посоветовать вам два скрипта по оптимизации и удалению мусора с RDS фермы, от практически моего земляка из города Бор

  1. www.sysengineering.ru/blog/servers-скрипт-обслуживания-сервера-rds-версия-2/
  2. www.sysengineering.ru/administration/rds-server-mainteinance-script/

На этом у меня все, мы с вами научились удалять старые записи от перенаправляемых устройств на RDS ферме (Удаление неактивных портов TS), научились исправлять ошибку с кодом ID 7011 Превышение времени ожидания (240000 мс) при ожидании ответа транзакции от службы UmRdpService". Наладили работу RDS фермы. С вами был Иван Семин, автор и создатель IT портала Pyatilistnik.org.

One Response to Удаление неактивных портов TS на RDS ферме при ошибке ID 7011

  1. Вячеслав:

    Все таки нужно уменьшить до 60000 или увеличить время ожидания?

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *