По непонятным причинам терминальный клиент работающий много лет вдруг, совершенно внезапно, не мог соединиться с терминальным сервером по загадочной причине отсутствия клиентской лицензии. На чешском (я столкнулся с этим у одного из клиентов именно на чешской версии windows) эта ошибка звучит так:
[quote style=”1″]”Vzdálený počítač přerušil spojení z důvodu chyby v licenčním protokolu. Pokuste se připojit ke vzdálenému počítači znovu nebo se obraťte na správce serveru.”[/quote]
На русском:
[quote style=”1″]”Удаленный компьютер отключил сеанс из-за ошибки в протоколе лицензирования. Попытайтесь подключиться к удаленному компьютеру снова или обратитесь к администратору сервера.”[/quote]
На английском:
[quote style=”1″]”The remote computer disconnected the session because of an error in the licensing protocol. Please try connecting to the remote computer again or contact your server administrator.”[/quote]
При этом
- другие компьютеры если такие имеются нормально подключаются и работают;
- linux клиент также нормально соединяется с терминалом;
- mstsc запущенный из командной строки на проблемном компьютере исправно соединяется с консолью терминала (mstsc.exe /admin);
- проблемный компьютер не соединяется ни с одним терминальным сервером;
- на сервере лицензий терминалов имеется достаточное количество лицензий.
На множестве сайтов в том числе на Microsoft я обнаружил практически одно и тоже решение. Но на практике оказалось, что пройдя все пункты этого решения, оно почему-то не работает. Но я не буду “катить бочку” на компанию Microsoft потому что решив проблему самостоятельно и работая над этой статьёй я всёже потрудился и нашёл им оправдание. Но конкретно чуть позже.
[heading style=”1″]С этого места могут читать и нетерпеливые читатели.[/heading]
ПОМНИТЕ ЧТО РАБОТА С РЕЕСТРОМ МОЖЕТ ПРИВЕСТИ К ОТКАЗУ ОПЕРАЦИОННОЙ СИСТЕМЫ ИЛИ ПРОГРАММ.
Ведите себя в редакторе реестра очень аккуратно и предельно внимательно.
- Запустите редактор реестра.
- На клиенте перейдите в следующий подраздел реестра: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSLicensing
- Выберите пункт MSLicensing.
- Делаем резервную копию:
- В меню Реестр выберите команду Экспорт файла реестра.
- В поле Имя файла введите mslicensingbackup, а затем нажмите кнопку Сохранить.
- Если в будущем потребуется восстановить данный раздел реестра, дважды щелкните имя mslicensingbackup.reg.
- В менюПравка выберите команду Удалить, а затем нажмите кнопку Да, чтобы подтвердить удаление подраздела реестра MSLicensing.
- Закройте редактор реестра и перезагрузите компьютер. (мне это не понадобилось)
- Последним обязательным к исполнению завершающим пунктом который не был указан на первой найденной странице Microsoft является: — ЗАПУСК КЛИЕНТА RDP ПОД ПРИВИЛЕНИЯМИ СИСТЕМНОГО АДМИНИСТРАТОРА! Под системами Windows Vista, Windows 7 где по умолчанию система UAC понижает привилегии даже административных пользователей клиент RDP не сможет произвести запись в системный реестр в ветку HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSLicensing! А ошибка о какой то там лицензии никогда вас не подведёт к решению проблемы которая заключается в отсутствии прав записи в реестр. Вот в этом я не понимаю программиста который не обработал ситуацию с такой ошибкой.
И в заключении привожу немного картинок для тех кто хочет знать, что понял всё верно. Но надписи на скриншотах только на чешском, сбой произошёл именно на машине с чешской версией Windows 7.
P.S.
Программисты помните! Тщательно обрабатывая ошибки вы упрощаете жизнь многим, как пользователям ваших программ так и системным администраторам и даже вашей службе технической поддержки.