Как устранить проблему периодического отключения HASP-ключа на Windows Server 2019?

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

Работа с аппаратными ключами защиты HASP в среде современных серверных операционных систем, таких как Windows Server 2019, часто преподносит неприятные сюрпризы. Типичная ситуация: ключ физически подключен к серверу, световой индикатор на нем горит, диспетчер устройств Windows отображает устройство корректно, однако 1С:Предприятие отказывается запускаться, выдавая ошибку отсутствия лицензии. При этом утилиты мониторинга, такие как Aladdin Monitor или Sentinel Admin Control Center (ACC), в упор не видят ключ.

В данной статье мы подробно разберем, почему происходят «отвалы» ключей, проанализируем влияние аппаратной части и программных настроек системы, а также составим пошаговый план стабилизации системы лицензирования.

Анализ проблемы: почему ОС видит ключ, а 1С — нет?

Первым делом нам необходимо понять архитектуру взаимодействия. Когда мы вставляем ключ в USB-порт, за его обнаружение отвечает драйвер низкого уровня. Если ключ отображается в «Диспетчере устройств», значит, драйвер и USB-шина установили базовый контакт. Однако для того, чтобы 1С получила лицензию, должна корректно работать служба Sentinel LDK License Manager (процесс hasplms.exe). Она выступает посредником между аппаратным ключом и прикладным ПО.

Разберем основные причины, по которым эта связка может разрываться:

  1. Агрессивное энергосбережение USB-портов в Windows Server 2019.
  2. Использование USB-хабов без активного питания или конфликты контроллеров USB 3.0/3.1.
  3. Накопление «фантомных» (скрытых) устройств в системе после обновлений драйверов.
  4. Блокировка порта 1947 брандмауэром или антивирусным ПО.
  5. Зависание внутренних потоков службы hasplms при высокой нагрузке.

Шаг 1. Отключение функций энергосбережения USB

Это самая частая причина нестабильной работы HASP на Windows Server 2019. Система пытается экономить электроэнергию и «усыпляет» порты, которые, по ее мнению, не проявляют высокой активности. Для ключа защиты это критично.

Рассмотрим процедуру отключения спящего режима для USB:

  1. Откроем Панель управления — Электропитание.
  2. Выберем текущую схему управления питанием и нажмем «Изменить дополнительные параметры питания».
  3. В появившемся дереве настроек найдем раздел Параметры USB — Параметр временного отключения USB-порта.
  4. Установим значение «Запрещено» (Disabled).

Однако этого недостаточно. Нам также необходимо проверить настройки на уровне драйверов устройств:

  1. Зайдем в Диспетчер устройств (devmgmt.msc).
  2. Развернем ветку Контроллеры USB.
  3. Для каждого устройства с названием «Корневой USB-концентратор» (USB Root Hub) и «Generic USB Hub» выполним следующие действия:
    • Нажмем правую кнопку мыши — Свойства.
    • Перейдем на вкладку Управление электропитанием.
    • Снимем галочку «Разрешить отключение этого устройства для экономии энергии».

После выполнения этих действий рекомендуется перезагрузить сервер для применения изменений на уровне ядра ОС.

Шаг 2. Решение проблем с физическим подключением и USB 3.0

Проанализируем ситуацию с USB-хабами. Как показывает практика, использование хабов без внешнего блока питания для серверных ключей — это прямой путь к нестабильности. Ключ на 50 пользователей потребляет больше энергии, чем однопользовательский ключ, и при скачках нагрузки на шину хаб может кратковременно «проседать» по вольтажу. Этого достаточно, чтобы внутренняя микропрограмма ключа HASP зависла, хотя светодиод продолжит светиться.

Рекомендация: постарайтесь подключить ключ напрямую в порты на материнской плате сервера. Если портов не хватает, используйте только активные USB-хабы с собственным блоком питания.

Также выясним причину конфликта с портами USB 3.0 (синего цвета). Старые модели ключей HASP (особенно серии HASP4 и старые HL) проектировались под спецификации USB 1.1/2.0. Контроллеры xHCI (USB 3.0) работают по другим алгоритмам опроса устройств. Если сервер имеет только порты 3.0, попробуйте подключить ключ через старый USB 2.0 хаб — он выступит в роли «переводчика», заставляя контроллер работать в режиме совместимости.

Шаг 3. Очистка системы от «фантомных» драйверов

Часто при переустановке драйверов Sentinel или смене портов в реестре Windows остаются записи о старых подключениях. Они создают конфликты адресации. Разберем процесс очистки:

  1. Запустим командную строку от имени администратора.
  2. Введем команду для отображения скрытых устройств: set devmgr_show_nonpresent_devices=1
  3. В этой же командной строке запустим диспетчер устройств: devmgmt.msc.
  4. В меню выберем Вид — Показать скрытые устройства.
  5. В разделах «Контроллеры USB» и «Устройства чтения смарт-карт» удалим все полупрозрачные (серые) иконки, относящиеся к HASP, Sentinel или SafeNet.
  6. Удалим текущий драйвер через «Установку и удаление программ» и установим последнюю версию Sentinel LDK Runtime (версии 8.11 или выше актуальны для Server 2019).

Шаг 4. Настройка служб и автоматизация перезапуска

Если проблема сохраняется и проявляется редко (например, раз в неделю), проанализируем состояние служб. Иногда помогает принудительное обновление настроек менеджера лицензий. Посмотрим на конфигурационные файлы:

Файл 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-шины заново.

Шаг 5. Сетевые экраны и Firewall

Проанализируем сетевой трафик. Менеджер лицензий использует порт 1947. В Windows Server 2019 брандмауэр работает достаточно жестко. Даже если вы создали разрешающее правило, после обновлений Windows оно может работать некорректно.

Рекомендуемые действия:

Итог

Стабильная работа HASP на Windows Server 2019 достигается комплексным подходом. Мы выяснили, что в первую очередь необходимо исключить энергосбережение USB и проблемы питания хабов. Во вторую очередь — обеспечить корректную работу службы лицензирования через актуальные версии драйверов и настройку сетевого доступа по порту 1947. Если же все программные методы исчерпаны, стоит рассмотреть возможность замены ключа на программную лицензию 1С, которая лишена аппаратных проблем с USB-шиной.

← На главную