Почему 1С не видит HASP-ключ при подключении по RDP и как решить эту проблему?

Системный администратор 1С v8.3 (Обычные формы) IT и автоматизация бизнеса
← На главную

При переходе на новые операционные системы (начиная с Windows 7 и Windows Server 2008) системные администраторы часто сталкиваются с крайне неприятной ситуацией. Локально установленная платформа 1С:Предприятие отлично запускается, видит все аппаратные USB-ключи и успешно открывает любые базы данных. Однако стоит подключиться к этому же компьютеру удаленно через службу удаленного рабочего стола (RDP), как файловая база данных наотрез отказывается запускаться, выдавая предупреждение: "Не найдена лицензия. Ключ защиты программы не обнаружен".

Давайте подробно разберем, почему возникает эта проблема, в чем кроется различие между старыми и новыми операционными системами Windows, и какими способами можно восстановить работоспособность HASP-ключей в терминальном режиме.

Выясняем причину: почему драйвер HASP блокирует RDP-сессии

Для начала проанализируем поведение системы защиты Sentinel HASP (разработки компании Aladdin/Thales). Это поведение не является ошибкой Windows или багом платформы 1С. Это штатный механизм защиты от несанкционированного многопользовательского использования однопользовательских лицензий.

Разработчики HASP-ключей заложили в логику работы локальных (однопользовательских) ключей жесткое ограничение: они должны обслуживать только того пользователя, который физически сидит за консолью компьютера. Как только драйвер HASP обнаруживает, что запрос на чтение ключа исходит из сеанса удаленного рабочего стола (RDP), он мгновенно блокирует выдачу лицензии. Сделано это для того, чтобы один локальный ключ на 1 пользователя нельзя было использовать для одновременной работы целого терминального сервера.

При этом клиент-серверные базы данных продолжают работать без проблем. Почему? Дело в том, что в клиент-серверном варианте лицензию раздает сам сервер приложений 1С (у него запущены свои фоновые процессы со специальными правами, которые опрашивают серверный HASP-ключ локально). Файловая же база опрашивает ключ силами локального сеанса пользователя, который в данный момент работает по RDP, и получает жесткий отказ от драйвера защиты.

Различие между Windows XP и современными ОС (Windows 7 / 10 / 11)

Многие администраторы удивляются: "Почему на старом компьютере с Windows XP все работало «из коробки» без дополнительных настроек, а на Windows 7 и более новых системах ключ перестал видеться?"

Этому есть четкое техническое объяснение. В операционной системе Windows XP (и Windows Server 2003) отсутствовал полноценный механизм изоляции нулевой сессии (Session 0 Isolation). Первый вошедший в систему интерактивный пользователь работал в той же сессии (Session 0), где запускались системные службы и драйверы. Драйвер HASP физически не мог надежно отделить удаленное RDP-подключение от локального входа.

Начиная с Windows Vista и Windows 7, корпорация Microsoft полностью изолировала Session 0 в целях безопасности. Системные службы теперь выполняются изолированно, а все пользователи (как локальные, так и удаленные) получают персональные сессии (Session 1, Session 2 и так далее). Драйвер HASP научился безошибочно определять тип сессии и начал блокировать RDP-запросы к локальным ключам.

Решение №1: Настройка сетевого ключа и установка HASP License Manager

Если в вашем распоряжении находится многопользовательский (сетевой) HASP-ключ (например, серии ORGL8 на 5, 10, 20 или более пользователей), он спроектирован для работы в сети, включая терминальные сессии. Однако напрямую через RDP 1С его все равно не увидит без специального посредника — службы HASP License Manager (HASP LM).

Выполним по шагам настройку сетевого ключа защиты:

  1. Скачайте актуальную версию HASP License Manager с официального сайта поддержки 1С или разработчика Thales (Aladdin).
  2. Установите HASP LM на компьютер, в который физически вставлен красный сетевой USB-ключ. Рекомендуется устанавливать его именно как службу (Service), а не как обычное приложение (Application), чтобы менеджер лицензий запускался автоматически до входа пользователей в систему.
  3. Убедитесь, что служба HASP Loader успешно запущена в диспетчере служб Windows.
  4. Откройте в брандмауэре Windows (и других сетевых экранах) порт 1947 (протоколы TCP и UDP). Именно через него платформа 1С общается с менеджером лицензий.

После установки HASP LM сетевой ключ начнет раздавать лицензии по сети, обходя прямую блокировку драйвера в RDP.

Решение №2: Принудительное перенаправление через nethasp.ini

Даже при установленном HASP License Manager платформа 1С в терминальной сессии может продолжать выдавать ошибку отсутствия лицензии. Это происходит из-за того, что по умолчанию 1С пытается найти ключ с помощью широковещательных пакетов (Broadcast-запросов), которые в RDP-сетях или при использовании VPN часто блокируются маршрутизаторами.

Нам необходимо принудительно указать платформе 1С точный IP-адрес машины, на которой запущен HASP LM. Для этого мы настроим файл конфигурации nethasp.ini.

Разберем этот процесс по шагам:

  1. Найдите файл nethasp.ini. Обычно он располагается в папке установки платформы 1С:Предприятие по пути C:\Program Files\1cv8\conf\ (или C:\Program Files (x86)\1cv8\conf\ для 32-битных версий).
  2. Если в этой папке файла нет, вы можете создать его вручную или скопировать шаблон из папки шаблонов установки.
  3. Откройте файл nethasp.ini любым текстовым редактором (например, Блокнотом) от имени Администратора.
  4. Приведите содержимое файла к следующему виду (удалите символы комментария ; перед ключевыми параметрами):

[NH_COMMON]
NH_TCPIP = Enabled

[NH_TCPIP]
NH_SERVER_ADDR = 127.0.0.1
NH_PORT_NUMBER = 1947
NH_TCPIP_METHOD = TCP
NH_USE_BROADCAST = Disabled

Рассмотрим подробнее, что делают эти настройки:

Сохраните изменения в файле nethasp.ini и перезапустите 1С. В подавляющем большинстве случаев после этого сетевой ключ в RDP-сессии начинает определяться мгновенно.

Решение №3: Обходные пути для локального (однопользовательского) ключа

Что делать, если у вас на руках строго локальный (синий/соло) HASP-ключ на одного пользователя, а работать по RDP жизненно необходимо? Штатно заставить его работать в RDP нельзя, но существуют обходные технические решения.

Вариант А: Использование функции RemoteFX (для Windows Pro / Enterprise)

Технология RemoteFX позволяет пробросить физический USB-порт клиентского ПК напрямую в терминальную сессию сервера, благодаря чему операционная система внутри RDP считает, что ключ физически подключен к виртуальной материнской плате.

Для настройки выполним следующие действия:

  1. На локальном компьютере откройте редактор локальной групповой политики (команда gpedit.msc).
  2. Перейдите по пути: Конфигурация компьютера -> Административные шаблоны -> Компоненты Windows -> Службы удаленных рабочих столов -> Клиент подключения к удаленному рабочему столу -> Перенаправление USB-устройств RemoteFX.
  3. Включите параметр "Разрешить RDP-перенаправление других поддерживаемых USB-устройств RemoteFX с этого компьютера".
  4. Установите права доступа "Администраторы и пользователи".
  5. Обновите политики командой gpupdate /force в командной строке и перезагрузите компьютер.
  6. При запуске подключения к удаленному рабочему столу (mstsc) перейдите на вкладку "Локальные ресурсы", нажмите кнопку "Подробнее" в разделе "Локальные устройства и ресурсы" и отметьте ваш HASP-ключ в списке USB-устройств.

Вариант Б: Виртуализация USB-портов сторонним софтом

Если RemoteFX недоступен, можно воспользоваться специализированным программным обеспечением для трансляции USB по сети (например, USB Network Gate, USB over Network или аналогами). Программа-сервер ставится на физическую машину с ключом, а программа-клиент ставится в терминальное окружение. Ключ монтируется как локальное USB-устройство, обходя ограничения RDP.

Решение №4: Переход на программные лицензии 1С

Наиболее современным, надежным и рекомендованным самой фирмой 1С решением является полный отказ от физических USB-ключей защиты в пользу программных лицензий (пин-кодов).

Программные лицензии изначально разрабатывались с учетом работы в виртуальных средах и терминальных сессиях RDP. Они не требуют установки драйверов HASP, не зависят от сетевых портов и отлично активируются прямо на терминальном сервере.

Начиная с версии платформы 1С:Предприятие 8.3.12, у администраторов появилась отличная возможность — привязка программной лицензии к аппаратному ключу HASP. В этом режиме система использует программную лицензию, но жестко привязывает ее не к конфигурации материнской платы или процессора (которые могут измениться при обновлении сервера), а к уникальному ID-номеру физического USB-ключа. Это исключает "слетание" лицензий при апгрейде сервера и одновременно решает проблему работы в RDP.

← На главную