Часто системные администраторы и пользователи сталкиваются с ситуацией, когда при замене сетевого ключа 1С на локальный однопользовательский (например, USB Hasp HL Pro ORGL8), при подключении через удаленный рабочий стол (RDP) возникает ошибка: «Не найдена лицензия. Не обнаружен ключ защиты программы или полученная программная лицензия». Сервер при этом может работать на базе ОС Windows Server 2008 R2 и выше, а программа 1С 8.3 функционировать в файловом или клиент-серверном режиме. Давайте вместе разберем, почему возникает эта проблема, проанализируем ограничения лицензирования и рассмотрим эффективные способы ее решения.
Если ранее использовался сетевой многопользовательский ключ на несколько рабочих мест (например, на 5 пользователей), сервер HASP License Manager (HASP LM) успешно раздавал лицензии по сети, в том числе и пользователям терминального сервера. Но как только мы меняем его на однопользовательский локальный USB-ключ (обычно они имеют синий или фиолетовый цвет), система перестает выдавать лицензии удаленным пользователям.
Выясним причину такого поведения. Однопользовательские ключи аппаратно и на уровне самой платформы 1С лишены поддержки терминальных сессий. Разработчики намеренно внедрили этот механизм, чтобы исключить неконтролируемое использование одиночной лицензии сразу несколькими пользователями через RDP. При запуске платформа 1С выполняет проверку среды. Если обнаруживается, что сеанс запущен через удаленный рабочий стол, платформа просто игнорирует вставленный в сервер локальный однопользовательский ключ.
Также важно понимать особенности работы утилиты HASP License Manager. Она предназначена исключительно для работы с сетевыми многопользовательскими ключами (красного цвета с маркировкой Net). Попытки настроить HASP LM, открыть порты или отредактировать конфигурационный файл nethasp.ini для однопользовательского ключа бессмысленны — программа технически не умеет считывать и раздавать по сети такие лицензии.
Существует одна недокументированная особенность, о которой стоит знать. Однопользовательский ключ можно заставить работать при удаленном подключении, если сымитировать локальный вход на сервер. Рассмотрим подробнее этот процесс.
Для этого необходимо инициировать так называемую консольную сессию при подключении. Выполняется это с помощью добавления специального ключа в команду запуска клиента RDP:
mstsc /admin
В старых версиях Windows использовался ключ /console. При таком подключении система создает сеанс, который платформа 1С расценивает как физическое присутствие пользователя за сервером. В этом случае ошибка лицензии не появится. Однако этот способ имеет жесткие ограничения и не подходит для постоянной работы:
Многие администраторы пытаются обойти ограничение с помощью технологий USB-over-Network, пробрасывая USB-порт с ключом напрямую в терминальную сессию пользователя. Проанализируем, почему этот метод не работает.
Даже если система успешно распознает устройство в диспетчере задач внутри RDP, платформа 1С все равно проверит контекст выполнения. Обнаружив среду терминального сервера, 1С заблокирует использование локального ключа и выдаст знакомую ошибку. Кроме того, любые попытки обойти встроенные механизмы защиты являются нарушением лицензионного соглашения.
Если однопользовательский ключ уже приобретен и заменить его на сетевой невозможно, а удаленная работа пользователей критически важна, нам необходимо изменить архитектуру доступа. Рассмотрим основные доступные варианты:
Подводя итог, можно сделать вывод: использование локального USB-ключа в терминальной сессии напрямую невозможно из-за встроенных ограничений. Для обеспечения стабильной работы мы рекомендуем либо перевести пользователей на работу через веб-сервер, либо модернизировать лицензирование, перейдя на программные лицензии или сетевые ключи защиты.