Получение информации о списке установленных лицензий с помощью утилиты RING начиная с 8.3.8

Получение информации о списке установленных лицензий с помощью утилиты RING начиная с 8.3.8

Важное замечание: утилита пока что не работает для базовых версий программных продуктов 1с.

Отдельная установка библиотеки для более ранних релизов

Дистрибутивы утилиты ring находятся в двух файлах:

  1. 1c-enterprise-license-tools-0.1.0-20.x86.msi
  2. 1c-enterprise-ring-0.6.0-15.x86.msi

Они помещаются в каталог ExtDst при установке платформы. Решение - установить отдельно новую платформу и взять из нее эти библиотеки.

Инсталлируются обычным запуском, без всяких сообщений.

Если устанавливать библиотеки отдельно от платформы, они ставятся в каталог " C :\ Program Files ( x 86)\1 C \1 CE \ ring ".

Настройка JAVA для работы библиотеки

Для работы библиотеки должна быть установлена java , скачать ее можно с http :// java . com

Проблема с путем JAVA_HOME

Если попытаться запустить утилиту ring , может быть выдано сообщение вида:

Это значит, что нужно настроить путь к JAVA _ HOME , решение легко гуглится, например Установка библиотеки криптографии

Для работы утилиты ring необходимо установить библиотеку криптографии.

Распаковать два jar -файла из архива local _ policy . jar и US _ export _ policy . jar в каталог вида C :\ Program Files ( x 86)\ Java \ jre 1.8.0_91\ lib \ security . При этом заменяются существующие файлы с более ограниченной криптографией.

Если не установить библиотеку, то утилита выдает ошибку вида:

Ошибка получения списка лицензий.

По причине: Ошибка при работе с хранилищем лицензий.

По причине: Данный ключ не поддерживается данным крипто-провайдером. Необходимо

установить крипто-провайдер, поддерживающий алгоритм AES 256 CBC с режимом шифр

ования PKCS5Padding (Например, Unlimited Strength Java(TM) Cryptography Extensio

n (JCE) Policy Files for the Java(TM) Platform, Standard Edition (Java SE) Runti

me Environment 7). На данный момент используется крипто-провайдер: SunJCE 1.8

По причине: Некорректный ключ.

По причине: Illegal key size

Просмотр лицензий

Команда ring доступна из любого каталога, т.к. при установке прописывается в path .

Для просмотра списка лицензий испольуется команда ring license list [-- path <хранилище>] .

Выдает список установленных лицензий, в правой части - номера лицензий, как они пишутся на коробках и в реганкетах.

Для информации об отдельной лицензии используется команда ring license info [-- name <имя>] [-- path <хранилище>] .

Выдает информацию о лицензии, нужно указывать полное имя лицензии:

Информация может содержать и описание продукта:

Скрипт для получения списка всех лицензий

Готовый скрипт lic _ list . cmd прикладываю к статье.

Его код выглядит так:

call ring license list > C:\1.txt

for /F "" %%i in (c:\1.txt) do call ring license info --name %%i

@echo > C:\lic_list.txt 1s Lisense List

cmd /c for /F "" %%i in (c:\1.txt) do call ring >> C:\lic_list.txt license info --name %%i

Сначала получается список лицензий в файл C :\1. txt

Затем файл построчно обрабатывается, и подробная информация со списком лицензий выводится на экран и в файл c:\lic_list.txt:

Обратите внимание, что ring – это тоже пакетный файл cmd , поэтому вызывается через CMD .

Скачать файлы Специальные предложения
  • Скопировать ссылку
  • Перейти
  • Скопировать ссылку
  • Перейти
  • Скопировать ссылку
  • Перейти
  • Скопировать ссылку
  • Перейти

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

И вот плавно вытекающий вопрос. В описании ring написано, что проверяя лицензию командой ring license validate --name <имя лицензии> должен быть код возврата 0 если лицензия активна, и код ошибки если с лицензией какие-то проблемы, вот только сколько не мучаю эту утилиту у меня для любой лицензии 0. При этом для нерабочей лицензии вполне корректно выводятся различии в железе с тем компом на котором ставилась это лицензия в прошлый раз.

Для действующей лицензии получаю всё верно:

C:\Program Files\1C\1CE\ring>ring license validate --name <имя рабочей лицензии> && echo ErrorLevel = %errorlevel% License check passed for the following license: "<имя рабочей лицензии>". ErrorLevel = 0

А вот для нерабочей лицензии исходя из инструкции errorlevel должен быть – 1, но всё равно получается 0.

C:\Program Files\1C\1CE\ring>ring license validate --name <имя нерабочей лицензии> && echo ErrorLevel = %errorlevel% Hardware removed: - Phis Mem_0 : 27916816384 - OS Inst Date_0 : 1376822360 - OS_0 : Microsoft Windows Server 2012 Standard - OS Ser_0 : 00184-20405-06597-AA231 - Sys Name_0 : S-IC1C - OS Ver_0 : 6.2 - CPU_0 : CPU0, Intel64 Family 6 Model 45 Stepping 7, 64, 64, 1F8BFBFF000206D7, 11527, None - CPU_1 : CPU1, Intel64 Family 6 Model 45 Stepping 7, 64, 64, 1F8BFBFF000206D7, 11527, None - DISK_0 : 512, 63, 13054, 255, 3328770, 209712510, 107372805120

📎📎📎📎📎📎📎📎📎📎