Проблема: При подключении к сеансу на сервер удаленных рабочих столов Windows 2008 R2 у пользователя появляется сообщение об ошибке протокола и закрытие клиента RDP. PS: Как оказалось данное решение не работает. Ошибки больше не сыплются в журнал, но некоторые пользователи отпадают. Итак, ищу дальше способ решить проблему. Сначала проверил какие версии клиентов rdp у пользователей. Версии сборок windows, с которых юзеры конектились: 6001, 7601, 9600 и 10586. Отпадали преимущественно 7601 и одна 9600. Какой либо закономерности я тут не обнаружил. На одном форуме нашел такую же тему, где советовали проверить сеть. Сервер был переброшен на другой шлюз и заменен свич. Как я и думал, проблема осталась, ведь остальные сервера прекрасно работали. Далее заменил сетевую карту и удалил один маршрут (в сети установлено 2 шлюза, в настройках сетевой прописано 2 шлюза с разными метриками и 2 default router). Что-то из последних действий помогло. Так что решение проблемы — замена сетевой(и разбирайтесь с маршрутизацией)
Рабочие заметки сисадмина
Сначала проверил какие версии клиентов rdp у пользователей. Версии сборок windows, с которых юзеры конектились: 6001, 7601, 9600 и 10586. Отпадали преимущественно 7601 и одна 9600. Какой либо закономерности я тут не обнаружил. На одном форуме нашел такую же тему, где советовали проверить сеть. Сервер был переброшен на другой шлюз и заменен свич. Как я и думал, проблема осталась, ведь остальные сервера прекрасно работали. Далее заменил сетевую карту и удалил один маршрут (в сети установлено 2 шлюза, в настройках сетевой прописано 2 шлюза с разными метриками и 2 default router). Что-то из последних действий помогло.
Полное описание проблемы — RDP сревер, HP Proliand DL386G6 с 64 гигами устнановленной памяти. Пользователей больше 200. Постоянно крутятся туда-сюда. Всё хорошо. Запускают Опен Офис, Фаерфокс и местное приложение, написаное на Flex. Клиенты — разношёрстные тонкие клиенты от HP. Всё идёт неплохо, но с определённой переодичностью начинает выпадать следующая проблема.
В какой-то неопределённый момент времени начинает сыпаться Explorer с ошибкой о том, что недостаточно памяти для запуска приложения. (There is not enough free memory to run this program) при этом он не позволяет открыть ни одну папку на рабочем столе. При попытке залезть в панель управления возникает та же самая ошибка но от ::26ee0668-a00a-44d7-9371-beb064c98683 — что понятно.
При этом, если я вызываю контекстное меню папки и через него открываю папку — то всё работает.
Быстрое решение проблемы — перезагрузка RDP сервера — это супертупо. Лог показывает интересные вещи:
При каждом Log Off любого пользователя появляется событие 1530 в котором рассказывается, что windows detected your registry file is still in use by other applications or services
В том числе портачат ошибками в логах ещё два сервиса:
A timeout (30000 milliseconds) was reached while waiting for a transaction response from the netprofm service
Этот event идёт рука об руку с предыдущим.
И ещё один сервис, который начинает барахлить это A timeout (30000 milliseconds) was reached while waiting for a transaction response from the fdPHost service
Эти двое молодцов сплювывают в лог раз в 30 секунд. Эти ошибки начинают появляться ровно в тот момент, когда начинает падать explorer. В остальном — полная тишина.
После глубокого гуглинга мне показалось что во всём виноват HP Universal Printer Driver который и держит открытым реестр (1530). В действительности у меня на сервере установлено 2 HP и одна Kyocera. Все они дружно работали под этим универсальным драйвером. Я сказал — «какого чёрта?» и выпилил универсальный драйвер заменив его на Универсальный драйвер для Kyocera и обновлённый универсальный от HP (один из принтеров стар как мир, под него только эта универсалка и работает).
После этого произошли некоторые изменения. Раньше, когда я пытался логофнуться с сервера мне выдавалось предупреждение что Task Service Host (svchost) не даёт компьютеру завершить работу и предлагал мне сделать Force Logoff. Теперь этого сообщения нет. Но в логи всё равно попадает ошибка 1530. Теперь уже от двух драйверов — от Kyocera и от HP.
На данный момент ошибка 7011 не появляется. Только потому, что explorer работает нормально. Но через пару-тройку дней он начнёт падать.
Сказать по-честноку — последний раз я обновлял эту систему в Ноябре 2010. Она абсолютно внутренняя и никакой связи с внешним миром не имеет, поэтому забил (просто использовал правило «Оно работает — ну вот и пусть себе работает») так что возможно это и вылечилось какой-то заплаткой, но я её не нашёл.
Интенсивный гуглинг показал мне, что что-то подобное возникало из за Norton — но у меня Norton’a нет. Более того, нашёл несколько советов закрыть работающие приложения, но при 18 гигах занятой оперативки на машине с 64 гигами мне это не кажется решением.
Вылогофивать всех пользователей пробовал. Не помогло — после захода ничего не меняется.
Как информация — сам не брезгую посидеть под RDP с админского аккаунта.
Войти
Начальные данные такие:— Есть Windows Server 2008— Выделенный IP— Смотрит в интернет своим RDP— Все обновления установлены. Журнал системных событий сразу нескольких серверов стал регулярно фиксировать ошибки такого вида:
Событие 50, TermDDКомпонент X. 224 RDP-протокола обнаружил ошибку в потоке протокола и отключил этого клиента
Событие 36888, SchannelВозникло следующее неустранимое предупреждение: 10. Внутреннее состояние ошибки: 1203.
На всех серверах глядит в интернет RDP.
Время появления — случайное, периодичность появления случайная.
Интернет советовал поставить заплатки от MS, поменять версию RDP-клиента, подправить реестр и еще всякие штуки.
Что же это такое?Очевидно, что это кто-то цепляется на Ваш RDP, что-то пытается сделать и соскакивает. Сервер его отрубает и генерит событие. Что и должен делать.
Что делать?Можно ничего. Но уменьшить вероятность подбора пароля, увеличив его длину и уменьшив читабельность соответствующим образом. Сервак попал кому-то на заметку или в какие-то базы для сканирования. Если RDP из интернета убрать нельзя, то лучший вариант — блокировать засветившиеся IP. Если можно — убрать RDP внутрь. Подключаться сначала в это “внутрь”, а оттуда — к RDP. Можно изменить порт RDP по-умолчанию — на какое-то время это поможет.