Почему аппаратный HASP-ключ 1С становится недоступным на сервере Windows Server 2019 и как это исправить?

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

Мы часто сталкиваемся с ситуациями, когда аппаратные лицензии для 1С:Предприятия, защищенные ключами HASP, становятся периодически недоступными на сервере. Это может проявляться по-разному, но общая картина такова: ключ вроде бы есть, ошибок в системных логах Windows или в Диспетчере устройств нет, но пользователи не могут получить лицензии. В нашем случае, сервер HP ProLiant DL380 Gen10 с установленным Windows Server 2019, на котором имеется аппаратный ключ HASP на 50 пользователей, сталкивается с этой проблемой раз в 3-4 месяца. В такие моменты Aladdin Monitor показывает, что ключ отсутствует. Временным решением является перезапуск служб HASP Loader и Sentinel SDK License Manager. Давайте вместе проанализируем возможные причины и предложим комплексные решения.

Возможные причины периодической недоступности HASP-ключей

Прежде чем перейти к методам устранения, важно понять, почему вообще может возникать такая проблема. Нередко причина кроется в совокупности факторов. Рассмотрим основные из них:

  1. Проблемы с драйверами HASP (Sentinel LDK): Одной из наиболее распространенных причин является некорректная работа или повреждение драйверов HASP (теперь известны как Sentinel LDK). Это может произойти после автоматических обновлений операционной системы Windows Server 2019, которые могут конфликтовать с установленными версиями драйверов. Драйверы могут "слететь", то есть перестать работать должным образом, или быть устаревшими, что приводит к нестабильной работе ключа.

  2. Некорректная работа USB-порта или контроллера: Аппаратный ключ, будучи USB-устройством, крайне чувствителен к качеству подключения. Периодическое пропадание ключа может быть вызвано проблемами с самим USB-портом на сервере (например, плохой контакт, износ или выход из строя порта). Использование USB-хабов, удлинителей или подключение ключа через переднюю панель сервера также может приводить к нестабильной работе ключа и его периодическому "отваливанию", так как такие соединения часто менее надежны и могут испытывать проблемы с питанием.

  3. Настройки управления питанием USB-устройств: В Windows существует функция "USB Selective Suspend" и аналогичные механизмы управления питанием, которые могут отключать питание USB-портов для экономии энергии. Хотя серверы обычно не переходят в спящий режим, аналогичные настройки могут применяться к отдельным USB-контроллерам или корневым концентраторам, вызывая временную недоступность ключа, когда система "считает" порт неактивным.

  4. Повреждение конфигурации WinSock: Некоторые программные продукты могут некорректно устанавливать свои драйверы TCP/IP, что приводит к повреждению конфигурации WinSock. Это, в свою очередь, может вызвать проблемы со связью между приложениями и службами, включая менеджер лицензий HASP, который использует сетевые протоколы для обнаружения и распределения лицензий даже в локальной сети.

  5. Физическая неисправность самого ключа: Хотя это случается относительно редко, аппаратные ключи со временем могут выходить из строя или начинать работать нестабильно из-за внутренних дефектов или износа контактов.

  6. Конфликты сетевых интерфейсов: Менеджер лицензий HASP иногда испытывает проблемы на компьютерах с двумя и более активными сетевыми интерфейсами. Это может привести к некорректному функционированию службы, так как менеджер лицензий может "запутаться" при выборе сетевого адаптера для прослушивания запросов.

  7. Проблемы с файлом nethasp.ini: Если в вашей конфигурации используется файл nethasp.ini для указания параметров поиска ключей по сети, некорректные или слишком широкие настройки в этом файле могут приводить к проблемам с обнаружением ключа или его потерей. Например, указание неактуальных IP-адресов или некорректный порядок поиска.

  8. Настройки брандмауэра или антивируса: Несмотря на то, что в нашем случае антивирус отсутствует, в других ситуациях брандмауэр Windows или сторонний антивирус может блокировать порт 1947 (TCP и UDP), который используется Sentinel Admin Control Center и менеджером лицензий для взаимодействия с клиентскими приложениями и обнаружения ключей.

  9. Особенности совместного использования ключей защиты 1С (согласно документации): Документация 1С:Предприятия (раздел 10.2.5.11) указывает на важные нюансы. Когда подсчетом клиентских лицензий занимается сервер 1С:Предприятия (или расширение веб-сервера), клиентские лицензии, у которых в программе Aladdin Monitor значение колонки Timeout равно 0, будут считаться занятыми. Это критично. Также не рекомендуется использовать одни и те же многопользовательские ключи HASP для одновременного получения клиентских лицензий с помощью HASP License Manager и сервера (или расширения веб-сервера) 1С:Предприятия. Кроме того, если в сети будет обнаружено несколько многопользовательских клиентских ключей серии ORGL8, сервером будет выбран один произвольный ключ. После исчерпания лицензий этого ключа, возможно, будет использоваться один многопользовательский ключ ORG8A, а затем один ORG8B. Клиентское приложение, выбравшее тот же сетевой клиентский ключ, что и сервер, также может прекратить поиск лицензии в других доступных по сети ключах той же серии. Это может создать видимость "пропажи" лицензий, если выбранный сервером ключ оказывается недоступен или исчерпан, а другие ключи игнорируются.

Комплексный подход к диагностике и устранению проблемы

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

1. Настройка планового перезапуска служб (временное решение)

Как мы уже выяснили, перезапуск служб HASP Loader и Sentinel SDK License Manager помогает временно решить проблему. Это не устраняет первопричину, но может служить надежным временным обходным путем, пока мы ищем истинную причину — для этих целей есть администрирование парка компьютеров и HASP-оборудования.

  1. Создание батч-файла для перезапуска: Откройте "Блокнот" и создайте файл с расширением .bat (например, restart_hasp.bat). Внутри файла пропишите команды для перезапуска служб:

    
    net stop "HASP Loader"
    net stop "Sentinel LDK License Manager"
    timeout /t 5 /nobreak
    net start "HASP Loader"
    net start "Sentinel LDK License Manager"
    

    Команда timeout /t 5 /nobreak добавит задержку в 5 секунд между остановкой и запуском, что может быть полезно для стабильности.

  2. Настройка планировщика заданий Windows:

    1. Откройте "Планировщик заданий" (Task Scheduler) в Windows Server.

    2. В правой панели выберите "Создать простую задачу" (Create Basic Task...).

    3. Присвойте задаче имя, например, "Ежедневный перезапуск HASP-служб".

    4. Укажите расписание, например, "Ежедневно" (Daily) или "Еженедельно" (Weekly) в нерабочее время (например, в 3:00 ночи). Если проблема возникает раз в 3-4 месяца, можно настроить еженедельный перезапуск, чтобы действовать на опережение.

    5. В качестве действия выберите "Запустить программу" (Start a program).

    6. Укажите путь к созданному вами .bat файлу.

    7. Убедитесь, что задача будет выполняться с наивысшими правами (в свойствах задачи на вкладке "Общие" поставьте галку "Выполнять с наивысшими правами").

2. Полная переустановка драйверов HASP (Sentinel LDK)

Чистая переустановка драйверов часто решает множество проблем, связанных с их повреждением или конфликтами.

  1. Загрузка актуальных драйверов: Перейдите на официальный сайт производителя (SafeNet/Thales Group) и загрузите последнюю версию Runtime Environment для Sentinel LDK. Обычно это файл Sentinel_LDK_Run-time_setup.zip или аналогичный.

  2. Отключение ключа: Перед началом удаления ОБЯЗАТЕЛЬНО отключите все HASP-ключи от сервера.

  3. Удаление старых драйверов: Извлеките содержимое архива с драйверами. Внутри найдите утилиту haspdinst.exe. Откройте командную строку от имени администратора и выполните следующую команду для полного удаления и очистки всех компонентов драйвера:

    haspdinst.exe -fr -kp -purge

    Эта команда выполнит полное удаление (-fr), удалит компоненты клиента (-kp) и очистит кэш и реестр от всех следов драйверов (-purge). Дождитесь завершения процесса.

  4. Перезагрузка сервера: После удаления драйверов ОБЯЗАТЕЛЬНО перезагрузите сервер.

  5. Установка новых драйверов: После перезагрузки снова откройте командную строку от имени администратора, перейдите в папку с загруженными драйверами и выполните команду установки:

    haspdinst.exe -i

    Дождитесь завершения установки.

  6. Подключение ключа: Только после успешной установки драйверов подключите HASP-ключ обратно в USB-порт сервера.

  7. Проверка статуса: Откройте Sentinel Admin Control Center (обычно доступен по адресу http://localhost:1947) и убедитесь, что ключ обнаружен и корректно отображается.

3. Проверка и настройка USB-портов

Физическое подключение играет ключевую роль.

  1. Смена USB-порта: Попробуйте подключить HASP-ключ в другой USB-порт на сервере. Желательно использовать порты, расположенные непосредственно на материнской плате (обычно на задней панели сервера), так как они наиболее стабильны и получают прямое питание. Избегайте использования USB-хабов, удлинителей и портов на передней панели сервера.

  2. Проверка контакта: Убедитесь, что ключ плотно вставлен в разъем. Иногда даже небольшой люфт может приводить к периодическому "отваливанию".

  3. Отключение управления питанием USB:

    1. Откройте "Диспетчер устройств" (Device Manager).

    2. Разверните раздел "Контроллеры универсальной последовательной шины USB" (Universal Serial Bus controllers).

    3. Для каждого элемента "Корневой USB-концентратор" (USB Root Hub) и "Generic USB Hub" (если есть) выполните следующие действия:

      1. Щелкните правой кнопкой мыши и выберите "Свойства" (Properties).

      2. Перейдите на вкладку "Управление электропитанием" (Power Management).

      3. Снимите флажок с опции "Разрешить отключение этого устройства для экономии энергии" (Allow the computer to turn off this device to save power).

      4. Нажмите "ОК".

    4. Также проверьте настройки питания для самого USB-контроллера (например, Intel(R) USB 3.0 eXtensible Host Controller или аналогичного), хотя там не всегда есть такая опция. На уровне BIOS/UEFI сервера также могут быть настройки, касающиеся управления питанием USB, которые стоит проверить.

4. Восстановление WinSock

Если проблема вызвана повреждением сетевых протоколов.

  1. Откройте командную строку от имени администратора.

  2. Выполните команду:

    netsh winsock reset
  3. После выполнения команды ОБЯЗАТЕЛЬНО перезагрузите сервер.

5. Диагностика с использованием Aladdin DiagnostiX

Утилита Aladdin DiagnostiX (теперь Sentinel DiagnostiX) предоставляет более глубокую информацию о состоянии HASP-ключей.

  1. Загрузите утилиту Aladdin DiagnostiX с официального сайта.

  2. Запустите ее на сервере.

  3. Утилита просканирует систему и выдаст отчет о найденных локальных и сетевых ключах, статусе служб, драйверов и возможных проблемах. Внимательно изучите этот отчет на предмет любых ошибок или предупреждений. Для этой задачи подойдёт универсальный инструмент администрирования и мониторинга 1С.

6. Анализ "Журнала поиска ключей" 1С

1С:Предприятие ведет собственный журнал поиска лицензий, который может пролить свет на проблему. Для удобного отслеживания активности пользователей и занятых ими лицензий в кластере можно использовать альтернативную консоль администрирования кластера серверов 1С.

  1. В некоторых версиях 1С:Предприятия (особенно при запуске клиента) можно получить доступ к "Журналу поиска программных лицензий и HASP-ключей". Этот журнал может предоставить более детальную информацию о том, почему ключ не был найден, например, конкретный код ошибки или причину, по которой 1С не смогла получить лицензию. Местоположение журнала может варьироваться, но часто он доступен через служебные меню или параметры запуска клиента/сервера 1С.

  2. Для серверного компонента 1С:Предприятия информацию о поиске лицензий можно найти в технологическом журнале, если настроены соответствующие события — для контроля лицензий есть администрирование серверов и управление сеансами 1С.

7. Проверка аппаратного ключа

Если все предыдущие шаги не дали результата, возможно, проблема в самом ключе.

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

  2. Если на другом компьютере ключ также ведет себя нестабильно, это может указывать на его физическую неисправность, и тогда потребуется замена ключа.

8. Настройка брандмауэра Windows

Убедитесь, что сетевой обмен не блокируется.

  1. Откройте "Брандмауэр Защитника Windows с расширенными параметрами безопасности" (Windows Defender Firewall with Advanced Security).

  2. Перейдите в раздел "Правила для входящих подключений" (Inbound Rules) и "Правила для исходящих подключений" (Outbound Rules).

  3. Убедитесь, что для порта 1947 (TCP и UDP), используемого Sentinel Admin Control Center и менеджером лицензий HASP, созданы разрешающие правила.

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

9. Оптимизация nethasp.ini

Если ваш 1С сервер или клиентские приложения используют файл nethasp.ini для поиска лицензий, убедитесь в его корректности.

  1. Найдите файл nethasp.ini (обычно находится в каталоге установки 1С:Предприятия или в системных каталогах).

  2. Откройте его в текстовом редакторе.

  3. В секции [NH_SERVER_ADDR] укажите явные IP-адреса серверов, на которых запущен менеджер лицензий HASP. Избегайте использования широковещательных запросов, если это возможно, так как они могут быть менее надежными в сложных сетевых окружениях.

    
    [NH_SERVER_ADDR]
    NH_SERVER_1 = 192.168.1.100 ; IP-адрес сервера с HASP-ключом
    NH_SERVER_2 = ServerName     ; Имя сервера с HASP-ключом
    
  4. В секции [NH_COMMON] убедитесь, что NH_LOCAL установлен в Disabled, если вы ищете сетевой ключ, и NH_TCPIP установлен в Enabled.

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

10. Учет особенностей совместного использования ключей 1С

Как было указано в сообщении 5, конфликты с 1С сервером могут быть серьезной причиной.

  1. Разделение ключей: Если это возможно, старайтесь не использовать одни и те же многопользовательские HASP-ключи для получения лицензий напрямую через HASP License Manager и одновременно через сервер 1С:Предприятия. Идеальный вариант — один ключ для сервера 1С (если он потребляет лицензии), другой ключ — для прямого использования клиентами через HASP License Manager.

  2. Мониторинг Timeout: Если 1С-сервер использует клиентские лицензии, регулярно проверяйте Aladdin Monitor. Значение Timeout = 0 означает, что лицензия считается занятой и не освобождается, что может приводить к быстрому исчерпанию доступных лицензий и видимости "пропажи" ключа, хотя на самом деле проблема в распределении. В такой ситуации необходимо выяснить, почему лицензии не освобождаются.

  3. Порядок выбора ключей ORGL8, ORG8A, ORG8B: Учитывайте, что 1С-сервер произвольно выбирает один из доступных ключей серии ORGL8. Только после его исчерпания он перейдет к ORG8A, а затем к ORG8B. Если у вас несколько ключей, и один из них периодически становится недоступным или исчерпывается, а 1С-сервер "зациклился" на нем, это может создавать проблемы. Рекомендуется использовать ключи разных серий более целенаправленно или тщательно контролировать их доступность и использование. Возможно, стоит рассмотреть перераспределение лицензий или физическое разделение ключей.

Заключение

Проблема с периодической недоступностью HASP-ключей на сервере 1С может быть вызвана множеством факторов, от аппаратных до программных и сетевых. Мы рассмотрели наиболее частые причины и предложили ряд последовательных шагов по диагностике и устранению проблемы. Начните с простых решений, таких как переустановка драйверов и проверка USB-портов, и постепенно переходите к более глубокой диагностике сетевых настроек и анализа поведения 1С:Предприятия. Комплексный подход позволит вам выявить истинную причину и обеспечить стабильную работу вашей системы 1С.

← На главную