см. так же: Как активировать лицензии при помощи Ring

Иногда при работе с лицензиями нужно проверить их актуальность. И хотя активация лицензий сама по себе не слетает (во всяком случае, не замечал), иногда это нужно проверить... Или просто получить информацию, введенную при активации лицензии для последующей переактивации. Ring нам может помочь и тут.

Шаг 1: Вывести содержимое хранилища лицензий

Документация по команде list

set JAVA_HOME="C:\Program Files (x86)\Java\jre1.8.0_281"
set TOOLS="C:\Program Files (x86)\1C\1CE\components\1c-enterprise-ring-0.19.5+12-x86"
set DATE = date /t

chcp 1251
echo "%DATE% 1. List licenses" >>  %TOOLS%\lic.log
call %TOOLS%\ring.cmd license list >> %TOOLS%\licenses.txt

pause

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

111111111111111-9999999999 (имя файла: "Первая лицензия.lic")
222222222222222-8888888888 (имя файла: "Вторая лицензия.lic")
333333333333333-7777777777 (имя файла: "Третья лицензия.lic")

111111111111111, 222222222222222, 333333333333333 - это пин-коды, использованные при активации лицензии;

9999999999, 8888888888, 7777777777 - а это регистрационные номера лицензий;

(Имя файла: "Первая лицензия.lic") - собственно, название файла лицензии, к которому относится соответствующий (слева) пин-код и рег.номер.

Шаг 2: Проверить актуальность лицензии

Документация по команде validate

set JAVA_HOME="C:\Program Files (x86)\Java\jre1.8.0_281"
set TOOLS="C:\Program Files (x86)\1C\1CE\components\1c-enterprise-ring-0.19.5+12-x86"
set DATE = date /t
set OPERATION=license validate
set FILELOG=license_validate.txt 

chcp 1251
echo "%DATE% 2. License validate info" >>  %TOOLS%\lic.log
echo "%DATE% =======================================================================" >>  %TOOLS%\%FILELOG%
call %TOOLS%\ring.cmd %OPERATION% --name 111111111111111-9999999999 >> %TOOLS%\%FILELOG%
echo "=======================================================================" >>  %TOOLS%\%FILELOG%
call %TOOLS%\ring.cmd %OPERATION% --name 222222222222222-8888888888 >> %TOOLS%\%FILELOG%
echo "=======================================================================" >>  %TOOLS%\%FILELOG%
call %TOOLS%\ring.cmd %OPERATION% --name 333333333333333-7777777777 >> %TOOLS%\%FILELOG%
echo "КОНЕЦ =======================================================================" >>  %TOOLS%\%FILELOG%


pause

На этом шаге нужно пин-коды и рег. номера лицензий, полученные в шаге 1, скопировать в скрипт в соответствующие на примере места. В результате работы получим файл license_validate.txt в котором будет записана информация в следующем формате:

"18.08.2021 ======================================================================="  
Проверка лицензии "111111111111111-9999999999" (файл: "111111111111111-9999999999") выполнена успешно.
"======================================================================="  
Проверка лицензии "222222222222222-8888888888" (файл: "222222222222222-8888888888") выполнена успешно.
"======================================================================="  
Проверка лицензии "333333333333333-7777777777" (файл: "333333333333333-7777777777") выполнена успешно.
"КОНЕЦ ======================================================================="  

Если лицензия не активна, то увидите соответствующую запись об этом: ошибка проверки лицензии и список того оборудования, которое было извлечено из компьютера после активации лицензии, из-за чего она и "сломалась". Однако! Есть интересный нюанс. Если Вы привязываете лицензию к сетевому хаспу, то лицензия будет активна на любом компьютере, которому виден этот хасп (если сделаны соответствующие настройки nethasp.ini), но при этом успешную проверку будете проходить только на том ПК, где активировали эти лицензии. На всех других компьютерах (читайте серверах) проверка будет завершаться ошибкой и будет выведен список оборудования и системы, которые были "удалены" после активации. Но лицензия будет активна!

И на десерт, представлю скрипт, который выводит всю ту информацию о лицензии, которую указывали при ее активации. Бывает нужно, если по каким-то причинам потеряли эти данные, а они необходимы для переактивации лицензий.

Получить информацию о владельце и продукте из лицензии

Документация по команде info

set JAVA_HOME="C:\Program Files (x86)\Java\jre1.8.0_281"
set TOOLS="C:\Program Files (x86)\1C\1CE\components\1c-enterprise-ring-0.19.5+12-x86"
set DATE = date /t
set OPERATION=license info
set FILELOG=license_info.txt 

chcp 1251
echo "%DATE% 3. License info" >>  %TOOLS%\lic.log
echo "%DATE% =======================================================================" >>  %TOOLS%\%FILELOG%
call %TOOLS%\ring.cmd %OPERATION% --name 111111111111111-9999999999 >> %TOOLS%\%FILELOG%
echo "=======================================================================" >>  %TOOLS%\%FILELOG%
call %TOOLS%\ring.cmd %OPERATION% --name 222222222222222-8888888888 >> %TOOLS%\%FILELOG%
echo "=======================================================================" >>  %TOOLS%\%FILELOG%
call %TOOLS%\ring.cmd %OPERATION% --name 333333333333333-7777777777 >> %TOOLS%\%FILELOG%
echo "КОНЕЦ =======================================================================" >>  %TOOLS%\%FILELOG%

pause

Как в предыдущем шаге, вставляем информацию о лицензии, полученную из хранилища (пин-код и рег. номер), в соответствующие места в скрипте и запускам. В результате получим файл license_info.txt со всей информацией по лицензии.

Комментарии (4)


  1. amarao
    28.08.2021 15:24

    А вы уверены, что у вас оптимальный формат вывода? Почему бы его не сделать машиночитаемым? Например, json или yaml?


    1. SmithSE Автор
      28.08.2021 15:30

      Вы правы, для автоматизации нужны указанные форматы, однако, пока не было потребности в этом.


  1. 1c80
    28.08.2021 18:17

    А с лицензиями на слк типа рарусовских сработает?

    Если Вы привязываете лицензию к сетевому хаспу,

    А где-то есть инфо, как привязать?


    1. SmithSE Автор
      28.08.2021 18:25

      нет, для отраслевых решений нужен СЛК. Но можно сделать сервер СЛК в сети и подключаться к нему с любого компа. Только откройте порт СЛК-шный. 9099