Где искать ключи защиты и программные лицензии 1С в локальной сети

· 9 мин

Содержание

Все ключи 1С в сети одной кнопкой не увидеть: аппаратные ключи HASP показывает Aladdin Monitor, программные лицензии лежат файлами *.lic в C:\ProgramData\1C\licenses на каждом компьютере, а то, какие лицензии сейчас заняты, видно в консоли кластера или командой rac session list --licenses. Полную картину собирают из трёх источников, и ниже — как это сделать по порядку.

Частое заблуждение — считать, что консоль сервера 1С покажет «все лицензии организации». Она показывает только лицензии, которые получили сеансы этого кластера. Ключ, вставленный в компьютер бухгалтера в файловом режиме, или ПИН-код, активированный на ноутбуке, туда не попадут.

С чего начать аудит: что вообще бывает в сети

Прежде чем запускать утилиты, составьте список того, что ищете. Защита 1С 8.3 бывает двух видов, и инструменты для них разные.

  • 🔑 Аппаратный ключ HASP — USB-ключ. Локальный защищает одно рабочее место, сетевой раздаёт лицензии по сети через менеджер лицензий на порту 475.
  • 📄 Программная лицензия — активируется ПИН-кодом, хранится файлом .lic, привязана к параметрам компьютера.
  • 🖥️ Лицензия сервера 1С — отдельная лицензия на сам сервер, тоже бывает аппаратной или программной.
  • 👥 Клиентские лицензии на сервере — программные клиентские лицензии, активированные на компьютере с сервером 1С. Их сервер выдаёт сеансам, если для базы разрешена выдача лицензий сервером.
Что ищемГде лежитЧем смотреть
Сетевой ключ HASPКомпьютер с менеджером лицензийAladdin Monitor, Sentinel Admin Control Center
Локальный ключ HASPКонкретное рабочее местоSentinel Admin Control Center на этом ПК
Программные лицензииC:\ProgramData\1C\licenses, на Linux /var/1C/licensesПроводник, ring license list
Занятые лицензииКластер серверов 1СКонсоль администрирования, rac

Заведите таблицу учёта сразу: компьютер, тип защиты, серия или регистрационный номер, число пользователей. Утилиты дают сырые данные, а сводить их всё равно придётся вручную.

Лицензии в консоли администрирования сервера 1С

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

  1. Откройте Администрирование серверов 1С Предприятия и подключитесь к центральному серверу.
  2. Раскройте кластер и перейдите в узел Сеансы.
  3. Переключите список на просмотр лицензий: для сеанса консоль показывает тип лицензии (программная или аппаратная), откуда она получена и её представление.
  4. Отдельно раскройте Рабочие процессы → нужный процесс → Лицензии. Здесь видна лицензия сервера, которую использует процесс.

Из консоли вы узнаете три вещи: сколько клиентских лицензий занято, выдаёт ли их сервер или клиенты приносят свои, и какой ключ или файл лицензии защищает сам сервер.

Если консоль не открывается с ошибкой о незарегистрированном компоненте, перерегистрируйте radmin.dll той же разрядности и версии, что и платформа:

rem путь и номер версии приведены для примера
regsvr32 "C:\Program Files\1cv8\8.3.24.1548\bin\radmin.dll"

Номер версии в пути подставьте свой. Командную строку запускайте от имени администратора.

Кто выдаёт клиентские лицензии

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

Второй вариант включается в свойствах информационной базы в консоли: параметр Выдача лицензий сервером 1С:Предприятия. Если он включён, а на сервере нет свободных клиентских лицензий, сервер их не выдаст, и клиент будет искать лицензию у себя.

При аудите это объясняет, почему у части сеансов в консоли указан сервер, а у части — ключ на чужом компьютере. Такие расхождения и выдают ключи, о которых вы не знали.

То же самое через rac

На сервере без графической оболочки или для выгрузки в файл удобнее утилита rac. Она обращается к агенту сервера через ras (по умолчанию порт 1545), поэтому служба RAS должна быть запущена.

cd "C:\Program Files\1cv8\8.3.24.1548\bin"
rac cluster list
rac session list --cluster=<UUID кластера> --licenses
rac process list --cluster=<UUID кластера> --licenses

В выводе ищите поля license-type (тип лицензии) и full-presentation (полное описание: серия ключа или имя файла лицензии). Если на кластере задан администратор, добавьте --cluster-user и --cluster-pwd. Полный список параметров — в rac help session.

Аппаратные ключи HASP на конкретном компьютере

Сначала убедитесь, что ключ вообще виден системе. Для этого есть веб-интерфейс драйвера Sentinel — Admin Control Center.

  1. На компьютере с ключом откройте в браузере http://localhost:1947.
  2. Перейдите на страницу Sentinel Keys. Там перечислены подключённые ключи, их тип и расположение — локальный или удалённый.
  3. Страница Sessions показывает открытые сеансы к ключам.

Если страница не открывается — не установлен драйвер или не запущена служба hasplms. Проверить службу можно так:

Get-Service hasplms

Посмотрите и на сам ключ. На корпусе ключей 1С есть маркировка серии. Локальные ключи защищают одно рабочее место, сетевые рассчитаны на определённое число пользователей. Число пользователей указано в документах комплекта поставки — сверяйте маркировку с ними, а не на глаз.

Не переставляйте сетевой ключ в другой компьютер в рабочее время. Пользователи, получившие лицензию с этого ключа, потеряют её, и сеансы 1С завершатся с ошибкой защиты.

Поиск сетевых ключей утилитой Aladdin Monitor

Главный инструмент для вопроса «какие ключи есть в сети и кто их занял» — Aladdin Monitor. Это бесплатная утилита от производителя ключей. Её ставят на любой компьютер сети, необязательно на тот, где стоит ключ.

Как ею пользоваться:

  1. Установите Aladdin Monitor и запустите его.
  2. Утилита сама ищет менеджеры лицензий широковещательным запросом. Найденные компьютеры появятся слева в дереве.
  3. Раскройте компьютер — увидите подключённые к нему сетевые ключи.
  4. Выберите ключ: справа отобразится максимальное число лицензий и сколько из них занято сейчас.
  5. Ниже по дереву видны адреса клиентов, которые держат лицензии.

Широковещательный запрос не проходит через маршрутизаторы. Если ключ стоит в другой подсети или филиале, Monitor его не найдёт сам — адрес менеджера лицензий придётся указать вручную.

Без Monitor менеджер лицензий тоже можно нащупать. Достаточно проверить, кто в сети слушает порт 475:

Test-NetConnection 192.168.1.10 -Port 475

TcpTestSucceeded : True значит, что на этом адресе работает менеджер лицензий или другая служба на том же порту. Это повод зайти на компьютер и проверить его через http://localhost:1947.

Настройки клиентов в nethasp.ini

Файл nethasp.ini подсказывает, к каким менеджерам лицензий обращаются рабочие места. При аудите он часто выдаёт забытый сервер с ключом, о котором никто не помнит.

Файл лежит в каталоге conf платформы: C:\Program Files\1cv8\conf\nethasp.ini, для 32-разрядного клиента — в C:\Program Files (x86)\1cv8\conf\. Рабочий вариант выглядит так:

[NH_COMMON]
NH_TCPIP = Enabled

[NH_TCPIP]
NH_SERVER_ADDR = 192.168.1.10
NH_USE_BROADCAST = Disabled
NH_TCPIP_METHOD = UDP
NH_PORT_NUMBER = 475

Что смотреть при разборе:

  • 📍 NH_SERVER_ADDR — адреса менеджеров лицензий. Можно перечислить несколько через запятую.
  • 📢 NH_USE_BROADCAST — при Enabled клиент ищет ключи широковещательно по всей подсети. Вывод: в сети может быть ключ, которого нет в списке адресов.
  • 🔌 NH_PORT_NUMBER — если порт отличается от 475, менеджер лицензий настроен нестандартно, и Monitor с настройками по умолчанию его не увидит.

Если файл пустой или все строки закомментированы точкой с запятой, клиент ищет ключи широковещательно. Указание конкретного адреса и отключённый broadcast ускоряют запуск 1С: клиент не ждёт ответа от всей подсети.

Программные лицензии и ПИН-коды

Программные лицензии в сетевых утилитах не видны совсем — это просто файлы на дисках. Их ищут на каждом компьютере.

Где лежат файлы .lic:

  • Windows — C:\ProgramData\1C\licenses (общий каталог для всех пользователей компьютера);
  • Linux — /var/1C/licenses.

Один файл — одна активированная лицензия. Имя файла ничего не говорит о содержимом, поэтому для расшифровки используйте утилиту ring с модулем лицензирования (ставится отдельно, нужна Java):

ring license list
ring license info --name <имя лицензии из списка>
ring license validate --name <имя лицензии из списка>

list покажет ПИН-код и регистрационный номер каждой лицензии, info — на что она выдана, validate — действительна ли она на этом компьютере.

Последняя команда важна при аудите. Программная лицензия привязана к оборудованию. После замены материнской платы, диска или сетевой карты файл остаётся на месте, но лицензия уже не работает . Такие «мёртвые» файлы вводят в заблуждение при подсчёте.

Сверяйте найденные ПИН-коды с конвертом из комплекта поставки. Каждый ПИН-код имеет ограниченное число повторных активаций. Если ПИН-код нашёлся на двух компьютерах, одна из лицензий, скорее всего, лишняя или неработающая.

Сбор данных по всей сети скриптом

Обходить 20 компьютеров руками долго. Простой скрипт PowerShell соберёт файлы лицензий и адреса менеджеров со всех машин домена через административные ресурсы C$. Запускайте его от учётной записи администратора домена.

$computers = Get-Content "C:\audit\computers.txt"
$report = foreach ($pc in $computers) {
    $lic  = "\\$pc\C$\ProgramData\1C\licenses"
    $ini  = "\\$pc\C$\Program Files\1cv8\conf\nethasp.ini"
    $online = Test-Connection $pc -Count 1 -Quiet
    [PSCustomObject]@{
        Computer   = $pc
        Online     = $online
        LicFiles   = if ($online -and (Test-Path $lic)) { (Get-ChildItem $lic -Filter *.lic).Count } else { $null }
        HaspServer = if ($online -and (Test-Path $ini)) {
                         (Select-String $ini -Pattern '^\s*NH_SERVER_ADDR' | Select-Object -First 1).Line
                     } else { $null }
        Port475    = if ($online) { (Test-NetConnection $pc -Port 475 -WarningAction SilentlyContinue).TcpTestSucceeded } else { $null }
    }
}
$report | Export-Csv "C:\audit\1c-licenses.csv" -NoTypeInformation -Encoding UTF8

В computers.txt — по одному имени компьютера на строку. На выходе CSV: сколько файлов лицензий на каждой машине, какой менеджер лицензий прописан и слушает ли сама машина порт 475.

Для серверов добавьте выгрузку rac session list --licenses в файл по расписанию через планировщик заданий. Пара недель таких снимков покажет пиковое потребление — именно эту цифру сравнивают с купленным количеством.

Скрипт не расшифровывает содержимое лицензий: для этого всё равно нужен ring license list на каждой машине, где нашлись файлы.

Ошибки, которые мешают увидеть ключ

Самые частые ситуации, когда ключ физически есть, а утилиты или 1С его не видят:

Диагностика: выберите симптом

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

Частые вопросы

Можно ли одной утилитой увидеть и HASP, и программные лицензии?
Нет. Сетевые HASP видит Aladdin Monitor, программные лицензии — только ring license list на конкретном компьютере или сам сервер 1С по своим сеансам.
Сколько лицензий занимает один пользователь с двумя окнами 1С?
Если оба сеанса запущены на одном компьютере, они используют одну клиентскую лицензию. На терминальном сервере каждый пользователь занимает свою.
Видно ли из консоли кластера, кто работает в файловой базе?
Нет. Файловые базы работают без сервера 1С, и их сеансы в консоли кластера не отображаются. Для них остаётся Aladdin Monitor по сетевому ключу.
Почему Monitor показывает больше занятых лицензий, чем людей в 1С?
Лицензию держит процесс 1С, даже свёрнутый или зависший, пока не истечёт таймаут сеанса менеджера лицензий. Проверьте адреса клиентов в списке — обычно это забытые сеансы.
Нужен ли доступ к ключу, чтобы посмотреть его в Monitor?
Нет, достаточно сетевой доступности порта 475 на компьютере с менеджером лицензий. Права администратора на нём не требуются.