Удаленный компьютер отключил сеанс из за ошибки в протоколе лицензирования
По непонятным причинам терминальный клиент работающий много лет вдруг, совершенно внезапно, не мог соединиться с терминальным сервером по загадочной причине отсутствия клиентской лицензии. На чешском (я столкнулся с этим у одного из клиентов именно на чешской версии windows) эта ошибка звучит так:
”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.” На русском:
”Удаленный компьютер отключил сеанс из-за ошибки в протоколе лицензирования. Попытайтесь подключиться к удаленному компьютеру снова или обратитесь к администратору сервера.” На английском:
”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.” При этом
- другие компьютеры если такие имеются нормально подключаются и работают;
- linux клиент также нормально соединяется с терминалом;
- mstsc запущенный из командной строки на проблемном компьютере исправно соединяется с консолью терминала (mstsc.exe /admin);
- проблемный компьютер не соединяется ни с одним терминальным сервером;
- на сервере лицензий терминалов имеется достаточное количество лицензий.
На множестве сайтов в том числе на Microsoft я обнаружил практически одно и тоже решение. Но на практике оказалось, что пройдя все пункты этого решения, оно почему-то не работает. Но я не буду “катить бочку” на компанию Microsoft потому что решив проблему самостоятельно и работая над этой статьёй я всёже потрудился и нашёл им . Но конкретно чуть позже.
ПОМНИТЕ ЧТО РАБОТА С РЕЕСТРОМ МОЖЕТ ПРИВЕСТИ К ОТКАЗУ ОПЕРАЦИОННОЙ СИСТЕМЫ ИЛИ ПРОГРАММ.
Ведите себя в редакторе реестра очень аккуратно и предельно внимательно.
- Запустите редактор реестра.
- На клиенте перейдите в следующий подраздел реестра: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSLicensing
- Выберите пункт MSLicensing.
- Делаем резервную копию:
- В меню Реестр выберите команду Экспорт файла реестра.
- В поле Имя файла введите mslicensingbackup, а затем нажмите кнопку Сохранить.
- Если в будущем потребуется восстановить данный раздел реестра, дважды щелкните имя mslicensingbackup.reg.
И в заключении привожу немного картинок для тех кто хочет знать, что понял всё верно. Но надписи на скриншотах только на чешском, сбой произошёл именно на машине с чешской версией Windows 7.
В Windows 8, как и в предыдущих версиях Windows, ряд задач администрирования и управления системой осуществляется через интерфейс командной строки (cmd.exe ). Однако, как и в предыдущих версиях Windows, ряд подобных задач для своего выполнения требуют наличие прав администратора. В этой статье мы поговорим о том, как открыть командную строку с . В связи с тем, что Microsoft несколько переделало интерфейс этой операционной системы, эта процедура будет несколько отличаться о той, к которой мы привыкли в Windows 7 (отсутствует меню Пуск ). Проблема в том, что при щелчке правой кнопкой мыши по ярлыку программы на стартовом экране Metro, меню «Run as administrator » не появляется.
В Windows 8 запустить командную строку с помощью прав администратора можно несколькими способами:
- Со стартового экрана
- Из меню проводника Explorer
- С помощью диспетчера задач
- При помощи меню Win+X
Опишем каждый из этих способов открытия командной строки с правами админа в Win8 подробнее.
Открываем командную строку из интерфейса Metro UI
В строке «Поиск» интерфейса Windows 8 Metro UI, нужно набрать “cmd ” (или “ command prompt ”) , в результате в левой панели отобразится найденное приложение. Затем нужно щелкнуть правой кнопкой мыши по появившемуся ярлыку и в нижней части экрана появится строка с дополнительными опциями запуска. Выберите «Запуск от имени администратора» (“Run as administrator”)
Все то же самое можно выполнить, выделив найденное приложение и нажав на клавиатуре комбинацию Ctrl + Shift + Enter .
Запуск командной строки из проводника
Откройте окно проводника Windows Explorer, нажав сочетание клавиш Win+ E . В левом окне выберите элемент Мой компьютер , а справа – диск C:\ . Затем в верхнем меню выберите File-> Open command prompt -> Open command prompt as administrator (Открыть командную строку как администратор ).
Запуск командной строки из диспетчера задач
Откройте диспетчер задач Windows 8, нажав сочетание клавиш Ctrl + Shift + Esc. Затем нужно создать новую задачу, выбрав пункт меню «Файл -> Запустить новую задачу» («File -> New Task (Run)»), набрать в появившемся окне cmd , поставить флажок «Запустить задачу с привилегиями Администратора » («Create this task with administrative privileges.») и нажать ОК.
Запуск из меню быстрого доступа Win+X
Окно командной строки с повышенными привилегиями также можно открыть с помощью меню быстрого запуска, для этого, находясь на начальном экране, нужно нажать Win+ X . В появившемся меню выберите пункт «Командная строка (администратор)» («Command Prompt (Admin)»).
Вот какие способы запуска командной строки с правами администратора в Windows 8 удалось обнаружить нам. В комментариях предлагайте свои варианты .
То, чего мне всегда не хватало в Windows Vista и во всех её потомках - возможности открыть командую строку с правами Администратора там, где мне нужно. Я из тех параноиков, что не отключают UAC, и мне чертовски досадно, когда очередная команда, которую я набрал в консоли, внезапно отказывается работать без повышения привилегий.
Windows не позволяет открыть окно команд там, где вам хочется, от имени администратора. Вместо этого вы должны открыть окно команд из меню Пуск, набрав в поиске cmd.exe и нажав CTRL + SHIFT + Enter . Это быстро? Нет. Это удобно? Нет. Вам придется совершать дополнительные телодвижения, чтобы оказаться в той папке, которая вам нужна, потому как окно команд открывается в папке %windir%\system32.
Три месяца назад я решил изменить ситуацию. Нет, я не выключил Контроль учётных записей (я всегда считал подобные действия откровенной глупостью). Я открыл студию и написал с десяток строчек на до-диезе .
Проект получил имя ELE. Восьмикилобайтный экзешник стал для меня панацеей в вопросе эскалации привилегий командной строки.
Повышение привилегий открытого окна командной строки
Первая и основная задача, которую мне хотелось решить при помощи ELE - открытие окна cmd.exe из cmd.exe. Иными словами, я хотел открыть точно такое же окно, как то, которое было открыто сейчас, с тем же путём, и с историей команд.
К моему сожалению, эту задачку мне удалось решить лишь частично. Открыть окно команд от имени администратора в нужной папке - не проблема. Проблемой оказалось получение истории введенных пользователем команд. cmd.exe хранит их в своей памяти, они живут ровно сеанс работы окна команд, и как их считать из памяти, я не знаю.Тем не менее, результатом я был доволен. Набрав в командной строке ele , я мгновенно получал запущенное с правами администратора окно команд, открытое в той же папке, что и предыдущее.
Открытие окна команд с правами администратора из файловых менеджеров
Особенность ELE - открывать окно команд с правами администратора в текущей папке - может сослужить вам добрую службу и сэкономить время и нервы, если интегрировать её в ваш любимый файловый менеджер. Я покажу вам это на примере Проводника, Total Commander и Far.
Открытие окна команд с правами администратора из Проводника
Достаточно интегрировать ELE в контекстное меню папки и фона папки (пустого, свободного от файлов пространства окна Проводника), и вы откроете командую строку от имени администратора в любой локации жесткого диска.
Твик реестра мог бы выглядеть так:Windows Registry Editor Version 5.00
@="cmd /c cd /d \"%1\" & ele /x"Ну и, соответственно, результат:
В один клик мышью.
Открытие окна команд с правами администратора из Total Commander
Просто перетащите ele.exe на тулбар этого файлового менеджера, и отредактируйте полученную кнопку, удалив путь запуска. Это необходимо, чтобы при запуске ele в качестве рабочей папки использовался путь в активной панели Total Commander.
Нажав на эту кнопку, вы откроете текущую папку в командной строке с правами администратора.
Открытие окна команд с правами администратора из Far
Один из способов сделать подобный трюк в этом популярном файловом менеджере - добавить ELE в пользовательское меню. Для это надо нажать F2 , и затем нажать INS . В качестве команды следует ввести ele.exe.
Я повесил на ELE хоткей E, таким образом, чтобы открыть окно командной строки от имени администратора в текущей папке, мне достаточно нажать F2 - e .
Ключи командной строки ELE
Краткая справка по использованию
При указании опции /x ELE закрывает окно командной строки, из которого она была вызвана. Т.е. на экране остается только одно окно cmd.exe - то, что открыто с правами администратора.
Этот ключ появился по просьбе , с которым я поделился идеей создания утилиты. Вадим проявил интерес к утилите и провёл активное её тестирование, в ходе которого и предложил добавить /x, дескать, бывает удобно что-то скопировать из "обычного" окна в высокопривигелированное. Скажу честно, у меня такой ситуации ни разу не было, и в своей повседневной деятельности я использую экзешник, который автоматически закрывает предыдущее окно, без дополнительных ключей. (Закрытие процесса-родителя, к слову, реализовано по аналогии с примером Саймона Мориера )
Ele программа [параметры]
Запустить программу от имени администратора. Например, Блокнот от имени администратора:
Ele notepad.exe d:\text1.txt
ELE - одна из немногих утилит, за создание которой мне не стыдно. Она действительно полезная, и способна сэкономить немного вашего времени и нервов.
Причины ошибки хранимая на этом компьютере, была изменена
Давайте разберемся, из-за чего у вас происходит данная проблема, это отголоски другой ошибки: Ошибка удаленный сеанс отключен поскольку отсутствуют доступные серверы лицензирования удаленных рабочих столов , у нас на тот момент на сервере терминалов закончились лицензии, для клиентских подключений и как следствие мы не смогли попасть. В результате этого у вас в некоторых случаях может в реестре Windows возникнуть проблема, ведущая к ошибке,что клиентская лицензия, хранимая на этом компьютере, была изменена.
В большинстве случаев ошибка удаленный сеанс отключен, так как клиентская лицензия удаленного рабочего стола, хранимая на этом компьютере, была изменена, выскакивает на клиентских операционных системах, по типу Windows 10 или 8.1
Я буду описывать как я это устранял на Windows 10, но это подойдет для любой версии ОС. Открываем редактор реестра Windows .
Переходим в ветку реестра
HKEY_LOCAL_MACHINE\Software\Microsoft\MSLicensin
И полностью удаляем весь раздел, через правый клик.
Подтверждаем удаление. После чего перезагружаем компьютер.
Как только вы перезагрузились, нажмите WIN+R и введите mstsc /admin, чтобы у вас открылось окно удаленного рабочего стола от имени администратора.
Все можем пытаться подключаться к вашему серверу терминалов.
Если не поможет, то попробуйте создать bat файл и выполнить его, ниже содержимое.
Const HKLM = &H80000002
Const MSLicensingStore = "Software\Microsoft\MSLicensing\Store\"
Set oReg = GetObject("winmgmts:\\.\root\default:StdRegProv")
RetVal = oReg.EnumKey(HKLM, MSLicensingStore, RegKeys)
If RetVal <> 0 Then
MsgBox("Не удалось прочитать ветвь реестра " & MSLicensingStore)
WScript.Quit
End If
If IsArray(RegKeys) Then
For Each Key In RegKeys
KeyName = MSLicensingStore & Key
If InStr(1, UCase(KeyName), "LICENSE") > 0 Then
RetVal = oReg.DeleteKey(HKLM, KeyName)
End If
Next
End IfТак же если у вас сервер терминалов на Windows 7 , то проверьте работу модуля, возможно придется переустановить.
(см. скриншот ниже), то нужно
А тем временем в логах терминального сервера под управлением Windows Server 2008 R2 SP1 Enterprise (в моем случае) формируются события:
Event Log — System — Event ID: 1028
The remote session could not be established from remote desktop client WXP86 because its license could not be renewed.
очистить кэш клиентской лицензии.
Почему такое происходит: дело в том, что терминальный сервер выдает каждому подключившемуся своего рода метку лицензии (CAL — Client Access License). Когда пользователь подключился к TS то сервер лицензий изменяет метку на доверительную. Если же такого не происходит, то временная метка остается действительно на период в 90 дней и лицензия сохраняется в реестре пользователя по адресу: HKEY_LOCAL_MACHINE\Software\Microsoft\MSLicensing
Ниже действия по обновлению кэша клиентской лицензии:
для это нужно зайти на рабочую станцию с такой ошибкой под учётной записью Администратора. (Administrator & Domain Admin) или же из под пользователя запустить командную строку с правами Администратора и в консоли набрать regedit.exe
или же все же зайти под Админом, но вот так не всегда возможно, потому как придется закрыть все сессию пользователя что критично.
Открыть редактор реестра ( Win + R и набрать regedit . exe )
Переходим HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSLicensing
Закрываем редактор реестра и перезагружаем компьютер (необязательно).
После заходим под пользователем в Windows XP (Windows 7) и в сеансе пользователя запускаем:
И указываем, что произвести запуск оснастки RDP от имени учётной записи Администратора:
Далее вводим, на примере представленного окна ниже, имя хоста удалённого сервера.
Вводим логин и пароль в случае успешного входа в реестре на клиентской станции заново создастся ключ реестра MSLicensing . И уже пользователь сможет подключаться к терминальным серверам без ошибок.
После заходим под пользователем в Windows 7 и в сеансе пользователя запускаем:
В появившееся окно вводим логин и пароль пользователя обладающего Административными правами (в моём случае Domain Admins )
Далее вводим, на примере представленного окна ниже, имя хоста удалённого сервера.
Вводим логин и пароль, в случае успешного входа в реестре на клиентской станции заново создастся ключ реестра MSLicensing . И уже пользователь сможет подключаться к терминальным серверам без ошибок.
Вот собственно и всё, данная заметка я еще одно напоминание как и что нужно сделать если такая ситуация с кем либо повторится. Всегда следует надеяться только на самого себя. А пока я прощаюсь, до встречи, с уважением автор блога — ekzorchik.
One comment
Спасибо за статью, на 2х машинах случилась такая беда, смотрел другую инструкцию но там не понятно был описан процесс удаления самой ветки MSLicensing, я удалял лишь параметр ClientLicense и поэтому ни чего не срабатывало. Хотя на 1 машине получилось каким-то случайным образом. Спасибо
Comments are closed.
Используйте прокси ((заблокировано роскомнадзором, используйте vpn или proxy)) при использовании Telegram клиента:
Поблагодари автора и новые статьи
будут появляться чаще :)
Карта МКБ: 4432-7300-2472-8059
Большое спасибо тем кто благодарит автора за практические заметки небольшими пожертвованиями. С уважением, Олло Александр aka ekzorchik.
- Запустите удаленный рабочий стол от имени администратора
- Запустите удаленный рабочий стол во встроенной учетной записи администратора
- Удалить раздел реестра MSLicensing
- Откат Windows до точки восстановления
- Сканирование реестра
1. Запустите удаленный рабочий стол от имени администратора
Некоторые пользователи подтвердили, что они исправили проблему удаленного рабочего стола в протоколе лицензирования, запустив Remote Desktop Connection от имени администратора. Запуск RDC от имени администратора гарантирует, что приложение имеет необходимые разрешения для изменения реестра. Поэтому введите ключевое слово Connection Подключение к удаленному рабочему столу ‘в окне поиска Windows, щелкните правой кнопкой мыши Подключение к удаленному рабочему столу и выберите Запуск от имени администратора , чтобы открыть его.
2. Запустите удаленный рабочий стол во встроенной учетной записи администратора
3. Удалите раздел реестра MSLicensing
Пользователи также подтвердили, что удаление ключа MSLicensing в реестре исправляет ошибку протокола лицензирования RDC. Вы можете удалить этот ключ с помощью редактора реестра, но сначала вы должны установить точку восстановления, к которой можно вернуться, если потребуется. Вот как вы можете создать точку восстановления системы и удалить ключ MSLicensing.
- Введите «создать точку восстановления» в поле поиска Cortana или меню «Пуск».
- Затем нажмите «Создать точку восстановления», чтобы открыть окно панели управления ниже.
- Затем введите название для точки восстановления системы в текстовом поле и нажмите кнопку Создать .
- Чтобы удалить ключ MSLicensing, нажмите горячую клавишу Windows + R.
- Затем вы можете ввести «regedit» в «Выполнить» и нажать ОК , чтобы открыть редактор реестра.
- Затем откройте этот ключ в редакторе реестра: HKLMSOFTWAREMicrosoftMSLicensing.
- Нажмите правой кнопкой мыши на ключе MSLicensing и выберите Удалить , чтобы удалить его.
- Перезагрузите компьютер или ноутбук и запустите подключение к удаленному рабочему столу от имени администратора.
4. Откат Windows до точки восстановления
- Вы можете открыть Восстановление системы, нажав сочетание клавиш Windows + R, введя «rstrui» в меню «Выполнить» и нажав ОК .
- Нажмите Далее , чтобы открыть список точек восстановления. Выберите параметр Показать больше точек восстановления , чтобы полностью развернуть список точек восстановления.
- Выберите точку восстановления, которая восстановит Windows до даты, когда удаленный рабочий стол в ошибке протокола лицензирования не появлялся.
- Затем нажмите кнопку Далее и выберите Готово , чтобы подтвердить точку восстановления.
5. Сканирование реестра
- Нажмите Загрузить на этой веб-странице, чтобы сохранить установщик CCleaner, а затем откройте мастер установки программного обеспечения, чтобы добавить его в Windows.
- Откройте окно CCleaner и нажмите кнопку Реестр .
Это те решения, которые исправили ошибку протокола лицензирования RDC для некоторых пользователей. Помните, однако, что вы всегда можете использовать бесплатное стороннее программное обеспечение удаленного рабочего стола вместо утилиты Windows RDC. Это руководство по программному обеспечению содержит более подробную информацию о некоторых из лучших пакетов удаленного рабочего стола для Windows 10.
22.12.2011
Windows Server 2008
Один комментарийСегодня на нескольких компьютерах пользователей встретились со следующей ошибкой, появляющейся при попытке удаленного rdp подключения к серверу терминалов Windows 2008 Server.
Ошибка выглядит так: 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.
В русскоязычной версии Windows ошибка звучит так:
Удаленный компьютер отключил сеанс из-за ошибки в протоколе лицензирования. Попытайтесь подключиться к удаленному компьютеру снова или обратитесь к администратору сервера
Кроме того, встречались еще и такие ошибки:
Удаленный сеанс отключен из-за отсутствия доступных лицензий клиента сервера терминалов для этого компьютера
The remote session was disconnected because there are no Remote Desktop client access licenses available for this computer
Данная ошибка появлялась как на компьютерах с Windows 7, так и с Windows XP, хотя часть клиентов работала нормально.
Чтобы победить эту ошибку, воспользуйтесь следующей инструкцией
- Откройте редактор реестра regedit
- Найдите ветку реестра HKEY_LOCAL_MACHINE\Software\Microsoft\MSLicensing
- На всякий случай создайте резервную копию этой ветки, экспортировав ее в reg файл
После выполнения указанной процедуры у вас получится установить соединение с сервером терминалов Remote Desktop Services, а клиенту будет выдана новая терминальная лицензия.
В том случае, если вы не запустите rdp клиент с правами обычного пользователя, тогда в указанной ветке реестра не будут созданы необходимые ключи, ведь у обычных пользователей нет прав на запись в этот раздел реестра.
Почему же могла появиться ошибка «The remote computer disconnected the session»?
С уверенностью на этот вопрос я ответить не смогу, но подозреваю что в несоответствии настроек лицензирования на сервере терминальных лицензий и сервере терминалов, например, когда на первом имеются лицензии только «На устройство» (Per device), а второй настроен на лицензирование «На пользователя» (Per User). В качестве второй версии, вероятно проблемы несоответствия или истечения сроков временных терминальных лицензий.
Читайте также: