Где искать ключи защиты и программные лицензии 1С в локальной сети
Содержание
Все ключи 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С Предприятияи подключитесь к центральному серверу. - Раскройте кластер и перейдите в узел
Сеансы. - Переключите список на просмотр лицензий: для сеанса консоль показывает тип лицензии (программная или аппаратная), откуда она получена и её представление.
- Отдельно раскройте
Рабочие процессы→ нужный процесс →Лицензии. Здесь видна лицензия сервера, которую использует процесс.
Из консоли вы узнаете три вещи: сколько клиентских лицензий занято, выдаёт ли их сервер или клиенты приносят свои, и какой ключ или файл лицензии защищает сам сервер.
Если консоль не открывается с ошибкой о незарегистрированном компоненте, перерегистрируйте 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.
- На компьютере с ключом откройте в браузере
http://localhost:1947. - Перейдите на страницу
Sentinel Keys. Там перечислены подключённые ключи, их тип и расположение — локальный или удалённый. - Страница
Sessionsпоказывает открытые сеансы к ключам.
Если страница не открывается — не установлен драйвер или не запущена служба hasplms. Проверить службу можно так:
Get-Service hasplms
Посмотрите и на сам ключ. На корпусе ключей 1С есть маркировка серии. Локальные ключи защищают одно рабочее место, сетевые рассчитаны на определённое число пользователей. Число пользователей указано в документах комплекта поставки — сверяйте маркировку с ними, а не на глаз.
Не переставляйте сетевой ключ в другой компьютер в рабочее время. Пользователи, получившие лицензию с этого ключа, потеряют её, и сеансы 1С завершатся с ошибкой защиты.
Поиск сетевых ключей утилитой Aladdin Monitor
Главный инструмент для вопроса «какие ключи есть в сети и кто их занял» — Aladdin Monitor. Это бесплатная утилита от производителя ключей. Её ставят на любой компьютер сети, необязательно на тот, где стоит ключ.
Как ею пользоваться:
- Установите Aladdin Monitor и запустите его.
- Утилита сама ищет менеджеры лицензий широковещательным запросом. Найденные компьютеры появятся слева в дереве.
- Раскройте компьютер — увидите подключённые к нему сетевые ключи.
- Выберите ключ: справа отобразится максимальное число лицензий и сколько из них занято сейчас.
- Ниже по дереву видны адреса клиентов, которые держат лицензии.
Широковещательный запрос не проходит через маршрутизаторы. Если ключ стоит в другой подсети или филиале, 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, и программные лицензии?
ring license list на конкретном компьютере или сам сервер 1С по своим сеансам.