Работа с аппаратными ключами защиты HASP в среде современных серверных операционных систем, таких как Windows Server 2019, часто преподносит неприятные сюрпризы. Типичная ситуация: ключ физически подключен к серверу, световой индикатор на нем горит, диспетчер устройств Windows отображает устройство корректно, однако 1С:Предприятие отказывается запускаться, выдавая ошибку отсутствия лицензии. При этом утилиты мониторинга, такие как Aladdin Monitor или Sentinel Admin Control Center (ACC), в упор не видят ключ.
В данной статье мы подробно разберем, почему происходят «отвалы» ключей, проанализируем влияние аппаратной части и программных настроек системы, а также составим пошаговый план стабилизации системы лицензирования.
Первым делом нам необходимо понять архитектуру взаимодействия. Когда мы вставляем ключ в USB-порт, за его обнаружение отвечает драйвер низкого уровня. Если ключ отображается в «Диспетчере устройств», значит, драйвер и USB-шина установили базовый контакт. Однако для того, чтобы 1С получила лицензию, должна корректно работать служба Sentinel LDK License Manager (процесс hasplms.exe). Она выступает посредником между аппаратным ключом и прикладным ПО.
Разберем основные причины, по которым эта связка может разрываться:
hasplms при высокой нагрузке.Это самая частая причина нестабильной работы HASP на Windows Server 2019. Система пытается экономить электроэнергию и «усыпляет» порты, которые, по ее мнению, не проявляют высокой активности. Для ключа защиты это критично.
Рассмотрим процедуру отключения спящего режима для USB:
Однако этого недостаточно. Нам также необходимо проверить настройки на уровне драйверов устройств:
После выполнения этих действий рекомендуется перезагрузить сервер для применения изменений на уровне ядра ОС.
Проанализируем ситуацию с USB-хабами. Как показывает практика, использование хабов без внешнего блока питания для серверных ключей — это прямой путь к нестабильности. Ключ на 50 пользователей потребляет больше энергии, чем однопользовательский ключ, и при скачках нагрузки на шину хаб может кратковременно «проседать» по вольтажу. Этого достаточно, чтобы внутренняя микропрограмма ключа HASP зависла, хотя светодиод продолжит светиться.
Рекомендация: постарайтесь подключить ключ напрямую в порты на материнской плате сервера. Если портов не хватает, используйте только активные USB-хабы с собственным блоком питания.
Также выясним причину конфликта с портами USB 3.0 (синего цвета). Старые модели ключей HASP (особенно серии HASP4 и старые HL) проектировались под спецификации USB 1.1/2.0. Контроллеры xHCI (USB 3.0) работают по другим алгоритмам опроса устройств. Если сервер имеет только порты 3.0, попробуйте подключить ключ через старый USB 2.0 хаб — он выступит в роли «переводчика», заставляя контроллер работать в режиме совместимости.
Часто при переустановке драйверов Sentinel или смене портов в реестре Windows остаются записи о старых подключениях. Они создают конфликты адресации. Разберем процесс очистки:
set devmgr_show_nonpresent_devices=1
devmgmt.msc.Если проблема сохраняется и проявляется редко (например, раз в неделю), проанализируем состояние служб. Иногда помогает принудительное обновление настроек менеджера лицензий. Посмотрим на конфигурационные файлы:
Файл nhsrv.ini (находится в папке с менеджером лицензий) управляет тем, как ключ раздается в сеть. Убедитесь, что в нем не ограничены протоколы. Но гораздо важнее на стороне клиента настроить nethasp.ini, чтобы 1С не тратила время на широковещательные запросы, а сразу обращалась к нужному серверу по IP-адресу.
Пример настройки nethasp.ini для клиентских рабочих станций:
[NH_COMMON]
NH_TCPIP = ENADLED
[NH_TCPIP]
NH_SERVER_ADDR = 192.168.1.100 ; IP вашего сервера с ключом
NH_PORT_NUMBER = 1947
NH_TCPIP_METHOD = TCP
NH_USE_BROADCAST = DISABLED
Если ключ «отваливается» программно, можно настроить регламентное задание на сервере, которое будет раз в сутки (например, ночью) перезапускать службы. Рассмотрим пример простого скрипта restart_hasp.bat:
net stop "Sentinel LDK License Manager"
net stop "HASP Loader"
timeout /t 5
net start "HASP Loader"
net start "Sentinel LDK License Manager"
Этот скрипт принудительно очищает кэш подключений и инициализирует опрос USB-шины заново.
Проанализируем сетевой трафик. Менеджер лицензий использует порт 1947. В Windows Server 2019 брандмауэр работает достаточно жестко. Даже если вы создали разрешающее правило, после обновлений Windows оно может работать некорректно.
Рекомендуемые действия:
hasplms.exe в белый список антивируса.Стабильная работа HASP на Windows Server 2019 достигается комплексным подходом. Мы выяснили, что в первую очередь необходимо исключить энергосбережение USB и проблемы питания хабов. Во вторую очередь — обеспечить корректную работу службы лицензирования через актуальные версии драйверов и настройку сетевого доступа по порту 1947. Если же все программные методы исчерпаны, стоит рассмотреть возможность замены ключа на программную лицензию 1С, которая лишена аппаратных проблем с USB-шиной.