При переходе на операционные системы семейства Windows Server 2012 R2 системные администраторы часто сталкиваются с проблемой корректной работы системы защиты 1С. Традиционные методы установки менеджера лицензий, которые безотказно работали на Windows Server 2003 или 2008, начинают выдавать ошибки, а службы отказываются запускаться. В данной статье мы подробно разберем, как преодолеть эти трудности, настроить сетевую раздачу ключей и обеспечить стабильную работу пользователей.
Проанализируем ситуацию, с которой сталкивается большинство пользователей. Основная путаница возникает при попытке запустить исполняемые файлы вручную. Рассмотрим ошибку: "You cannot activate this executable on this own. To launch the HASP License Manager, run nhsrvw32.exe". Эта ошибка возникает, когда администратор пытается запустить файл nhsrvice.exe (который является системной службой) простым двойным кликом из папки C:\Windows\SysWOW64.
Выясним причину такого поведения. Программа сообщает нам, что данный файл не предназначен для самостоятельного интерактивного запуска. Для работы в фоновом режиме он должен быть зарегистрирован как служба Windows NT с помощью инсталлятора LMSetup.exe. Если же нам нужно запустить менеджер лицензий как обычное приложение, следует использовать nhsrvw32.exe, однако для серверных ОС это не является рекомендуемым методом.
Для успешной инсталляции на Windows Server 2012 R2 выполним следующие действия. Во-первых, нам необходимо использовать правильный дистрибутив. Рассмотрим состав типового пакета "Менеджер лицензий аппаратной защиты NetHASP":
lmsetup.exe.Иногда после установки служба Hasp Loader или HASP License Manager не стартует, выдавая системную ошибку 1068 ("Дочерняя служба не зафиксирована" или "Зависимая служба не запущена"). Проанализируем, от чего зависит работа менеджера лицензий. Для корректного функционирования службы необходимо наличие установленного и работающего драйвера ключа (Sentinel HASP Driver).
Если драйвер устарел или не имеет цифровой подписи, совместимой с Windows Server 2012 R2, менеджер лицензий не сможет получить доступ к аппаратному ключу и служба завершится с ошибкой. В этом случае выполним следующие шаги:
haspdinst.exe -purge
haspdinst.exe -i
Рассмотрим ситуацию, когда служба запущена, но рабочие станции не видят ключ. Это часто случается на серверах с несколькими сетевыми интерфейсами или виртуальными адаптерами. Нам потребуется отредактировать конфигурационный файл nhsrv.ini, который обычно находится в папке с установленной программой или в системной директории SysWOW64.
Проанализируем ключевые параметры в секции [NHS_IP]. Нам нужно принудительно привязать службу к конкретному IP-адресу сервера, чтобы она не "слушала" все интерфейсы подряд, включая виртуальные. Пример настройки:
[NHS_IP]
; Указываем конкретный IP-адрес сервера
NHS_USE_BIND_IP_ADDRESS = 192.168.1.10
; Разрешаем использование протокола TCP/IP
NHS_IP_query_timeout = 3
После внесения изменений обязательно перезапустим службу менеджера лицензий через оснастку services.msc.
Windows Server 2012 R2 по умолчанию имеет включенный брандмауэр с довольно жесткими правилами. Для того чтобы менеджер лицензий мог отвечать на запросы клиентских приложений 1С, мы должны открыть соответствующий порт. Посмотрим, какой протокол используется: это UDP порт 475.
Разберем процесс создания правила в брандмауэре:
Если вы установили современный Sentinel LDK Runtime, то управление лицензиями теперь осуществляется через веб-интерфейс. Попробуем зайти в панель управления, введя в браузере адрес http://localhost:1947.
В этом интерфейсе мы можем наглядно увидеть:
Важно помнить, что современные версии драйверов уже включают в себя функции менеджера лицензий, и установка старого LMSetup.exe может потребоваться только в очень специфических случаях или для очень старых моделей ключей HASP4 (белых или синих параллельных портов LPT).
Напоследок разберем, как помочь клиентскому приложению найти наш сервер на Windows 2012 R2. На стороне пользователя (на рабочем месте, где установлена 1С) найдем файл nethasp.ini (обычно в папке C:\Program Files\1cv8\conf). Отредактируем его, чтобы исключить поиск ключа по широковещательному запросу, который часто блокируется в современных сетях:
[NH_COMMON]
NH_TCPIP = Enabled
[NH_TCPIP]
; Указываем точный IP сервера, где мы настраивали менеджер лицензий
NH_SERVER_ADDR = 192.168.1.10
NH_TCPIP_METHOD = TCP
NH_USE_BROADCAST = Disabled
Таким образом, мы проанализировали весь путь от установки драйверов до настройки конфигурационных файлов клиента и сервера. Совместное использование режима совместимости для инсталлятора, актуальных драйверов и прямой прописи IP-адресов гарантирует стабильную работу защиты HASP на Windows Server 2012 R2.