Удаленный компьютер отключил сеанс из за ошибки в протоколе лицензирования

Обновлено: 18.05.2024

Отключен из за сбоя создания хранилища лицензий. Удаленный сеанс отключен, клиентская лицензия, хранимая на этом компьютере, была изменена

По непонятным причинам терминальный клиент работающий много лет вдруг, совершенно внезапно, не мог соединиться с терминальным сервером по загадочной причине отсутствия клиентской лицензии. На чешском (я столкнулся с этим у одного из клиентов именно на чешской версии 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 возникнуть проблема, ведущая к ошибке,что клиентская лицензия, хранимая на этом компьютере, была изменена.

    В большинстве случаев ошибка удаленный сеанс отключен, так как клиентская лицензия удаленного рабочего стола, хранимая на этом компьютере, была изменена, выскакивает на клиентских операционных системах, по типу 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 8 запустить командную строку с помощью прав администратора можно несколькими способами:

    1. Со стартового экрана
    2. Из меню проводника Explorer
    3. С помощью диспетчера задач
    4. При помощи меню Win+X

    Опишем каждый из этих способов открытия командной строки с правами админа в Win8 подробнее.

    Открываем командную строку из интерфейса Metro UI

    Все то же самое можно выполнить, выделив найденное приложение и нажав на клавиатуре комбинацию Ctrl + Shift + Enter .


    Запуск командной строки из проводника

    Откройте окно проводника Windows Explorer, нажав сочетание клавиш Win+ E . В левом окне выберите элемент Мой компьютер , а справа – диск C:\ . Затем в верхнем меню выберите File-> Open command prompt -> Open command prompt as administrator (Открыть командную строку как администратор ).


    Запуск командной строки из диспетчера задач


    Запуск из меню быстрого доступа Win+X


    Вот какие способы запуска командной строки с правами администратора в Windows 8 удалось обнаружить нам. В комментариях предлагайте свои варианты .

    По непонятным причинам терминальный клиент работающий много лет вдруг, совершенно внезапно, не мог соединиться с терминальным сервером по загадочной причине отсутствия клиентской лицензии. На чешском (я столкнулся с этим у одного из клиентов именно на чешской версии 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 запустить командную строку с помощью прав администратора можно несколькими способами:

      1. Со стартового экрана
      2. Из меню проводника Explorer
      3. С помощью диспетчера задач
      4. При помощи меню Win+X

      Опишем каждый из этих способов открытия командной строки с правами админа в Win8 подробнее.

      Открываем командную строку из интерфейса Metro UI

      Все то же самое можно выполнить, выделив найденное приложение и нажав на клавиатуре комбинацию Ctrl + Shift + Enter .


      Запуск командной строки из проводника

      Откройте окно проводника Windows Explorer, нажав сочетание клавиш Win+ E . В левом окне выберите элемент Мой компьютер , а справа – диск C:\ . Затем в верхнем меню выберите File-> Open command prompt -> Open command prompt as administrator (Открыть командную строку как администратор ).


      Запуск командной строки из диспетчера задач


      Запуск из меню быстрого доступа Win+X


      Вот какие способы запуска командной строки с правами администратора в 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 , то проверьте работу модуля, возможно придется переустановить.

      Читайте также: