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

14.06.2018

То, чего мне всегда не хватало в 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


@="ele.exe"


@="ele.exe"


@="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 8, как и в предыдущих версиях Windows, ряд задач администрирования и управления системой осуществляется через интерфейс командной строки (cmd.exe ). Однако, как и в предыдущих версиях Windows, ряд подобных задач для своего выполнения требуют наличие прав администратора. В этой статье мы поговорим о том, как открыть командную строку с . В связи с тем, что Microsoft несколько переделало интерфейс этой операционной системы, эта процедура будет несколько отличаться о той, к которой мы привыкли в Windows 7 (отсутствует меню Пуск ). Проблема в том, что при щелчке правой кнопкой мыши по ярлыку программы на стартовом экране Metro, меню «Run as administrator » не появляется.

В Windows 8 запустить командную строку с помощью прав администратора можно несколькими способами:

  1. Со стартового экрана
  2. Из меню проводника Explorer
  3. С помощью диспетчера задач
  4. При помощи меню 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) эта ошибка звучит так:
”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.
  • В менюПравка выберите команду Удалить, а затем нажмите кнопку Да, чтобы подтвердить удаление подраздела реестра MSLicensing.
  • Закройте редактор реестра и перезагрузите компьютер. (мне это не понадобилось)
  • Последним обязательным к исполнению завершающим пунктом который не был указан на первой найденной странице Microsoft является: - ЗАПУСК КЛИЕНТА RDP ПОД ПРИВИЛЕНИЯМИ СИСТЕМНОГО АДМИНИСТРАТОРА! Под системами Windows Vista, Windows 7 где по умолчанию система UAC понижает привилегии даже административных пользователей клиент RDP не сможет произвести запись в системный реестр в ветку HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSLicensing! А ошибка о какой то там лицензии никогда вас не подведёт к решению проблемы которая заключается в отсутствии прав записи в реестр. Вот в этом я не понимаю программиста который не обработал ситуацию с такой ошибкой.

И в заключении привожу немного картинок для тех кто хочет знать, что понял всё верно. Но надписи на скриншотах только на чешском, сбой произошёл именно на машине с чешской версией Windows 7.

Добрый день уважаемые читатели и подписчики, в прошлый раз мы с вами решали ошибку, что не работает поиск в outlook 2013 . Сегодня же мы не будем трогать офисные продукты компании Microsoft, а разберем ошибку в работе RDP соединения, на терминальный сервер под управлением Windows Server 2012 R2. Сотрудник пытается подключиться к удаленному рабочему столу, а в место привычного рабочего окружения он получает ошибку: Удаленный сеанс отключен, поскольку клиентская лицензия удаленного рабочего стола, хранимая на этом компьютере, была изменена. И в результате отпинывает пользователя, не давая ему зайти по удаленному подключению. Ниже мы рассмотрим, как с этим бороться.

Причины ошибки хранимая на этом компьютере, была изменена

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