Получение информации о списке установленных лицензий с помощью утилиты RING начиная с 8.3.8
Важное замечание: утилита пока что не работает для базовых версий программных продуктов 1с.
Отдельная установка библиотеки для более ранних релизов
Дистрибутивы утилиты ring находятся в двух файлах:
- 1c-enterprise-license-tools-0.1.0-20.x86.msi
- 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