Приветствую.
В нашей компании более 500 магазинов. Каждый магазин - это сервер с 1С, на котором стоит лицензия сервер + пак клиентов. И так как на серверах периодически выходят из строя диски и приходится переактивировать лицензии 1С, или вводить новые сервера в эксплуатацию, то активация/переактивация лицензий - это часто повторяющийся процесс. И запускать 1С, заходить в конфигуратор, заполнять все, и ждать напрягает)
Вот и создал скрипт удаленной активации программных лицензий 1С.
Скрипт отдается как есть)
В архиве лежит скрипт для запуска .PS1, файл конфига и 2 папки.
Скрипт .PS1 можно перенести в любую папку.
Скрипт использует инструмент 1с ring, для работы которого необходима java.
В скрипте необходимо задать путь для переменной $RingPathSource, по которому находится содержимое архива 1CE (кроме файла .ps1)
На первых шагах скрипт копирует (если ранее не было скопировано) «измененную» java.
Под измененной java имеются в виду каталоги jre и lib необходимые для работы ring с измененным параметром JAVA_HOME для запуска.
Java работает без установки.
Папки копируются на удаленный сервер по пути c:\ProgramData (Файлы для работы ring) и c:\InstallSource (Файлы для работы с лицензиями, лицензии и логи)
Если Вы будете менять путь хранения файлов на сервере, то необходимо изменить этот путь также в файлах ring.cmd и ring-commands.cfg
После введения регистрационных данных скрипт ищет существующие лицензии 1С для получения данных о предыдущей активации.
Сопоставление идет по параметрам
$Town = $details.Town $House = $details.House $Street = $details.Street $First_name= $details."First name" $Middle_name = $details."Middle name" $Last_name = $details."Last name" $Company = $details.Company -replace '"','\"' $ZIP_code = $details."ZIP code" $Country = $details.Country $Building = $details.Building $Email = $details.Email |
Если предыдущей лицензии нет или она не найдена, то идет условие использовать заранее прописанные рег. данные. (Задаются в ручную в скрипт)
$Town = "Город";
$House = "ДОМ";
$Street = "Улица";
$First_name= "Имя";
$Middle_name = "Отчество";
$Last_name = "Фамилия";
$Company = 'ООО \"Фирма\"';
$ZIP_code = "индекс";
$Country = "Российская Федерация";
$Building = "строение";
$Email = "почта";
Обращаю внимание, что у нас используются в название фирмы двойные кавычки “” (ООО "Фирма"), что нельзя использовать в скрипте. Поэтому в скрипте идет замена “ на конструкцию ‘\”\”’
Так как у вас могут использоваться или не использоваться некоторые поля, то вам необходимо проверить, добавить или убрать лишние строки (добавить или убрать эти сроки нужно и дальше в шаг #генерация файла.).
Ранее при активации 1С (на версиях 8.3.16 и ниже) страна была Россия, а после какого-то релиза стала Российская Федерация. 1С говорит, что повторная лицензия должна быть одинакова до символа. Для страны Россия необходимо использовать $Country = "RU";
Можно добавить -replace 'Россия:',’RU’ в строку $details = (Get-Content c:\InstallSource\1CE\lic_details_$firstlic.txt) или в строку $Country = $details.Country но, желательно проверить это на живой лицензии.
Парсинга ошибок нет, ошибки можно посмотреть в созданных файлах на сервере 1CE\LicensePath.