Ключевое слово в защите информации
КЛЮЧЕВОЕ СЛОВО
в защите информации
Получить ГОСТ TLS-сертификат для домена (SSL-сертификат)
Добро пожаловать, Гость! Чтобы использовать все возможности Вход или Регистрация.

Уведомление

Icon
Error

2 Страницы12>
Опции
К последнему сообщению К первому непрочитанному
Offline PlutoVYS  
#1 Оставлено : 22 мая 2020 г. 22:53:27(UTC)
PlutoVYS

Статус: Участник

Группы: Участники
Зарегистрирован: 15.06.2019(UTC)
Сообщений: 11
Российская Федерация
Откуда: Москва

Здравствуйте!

Озаботились процессом напоминания о заканчивающейся лицензии. Для этого требуется получить срок окончания лицензии.
Каким образом это можно сделать?

Обращение типа

Код:
set obj = CreateObject("CPCSPLicense.CPCSPLicense")
MsgBox obj.GetExpireDate("") & " " & obj.GetType()


вызывает ошибку 'Данные настройки для этого продукта повреждены. Обратитесь в службу поддержки.'
Offline Андрей *  
#2 Оставлено : 23 мая 2020 г. 0:12:47(UTC)
Андрей *

Статус: Сотрудник

Группы: Участники
Зарегистрирован: 26.07.2011(UTC)
Сообщений: 12,625
Мужчина
Российская Федерация

Сказал «Спасибо»: 492 раз
Поблагодарили: 2034 раз в 1578 постах
Здравствуйте.

А если указать GUID, тоже ошибка?

https://www.cryptopro.ru...&m=115327#post115327
Техническую поддержку оказываем тут
Наша база знаний
Offline PlutoVYS  
#3 Оставлено : 23 мая 2020 г. 8:39:35(UTC)
PlutoVYS

Статус: Участник

Группы: Участники
Зарегистрирован: 15.06.2019(UTC)
Сообщений: 11
Российская Федерация
Откуда: Москва

Автор: Андрей * Перейти к цитате
Здравствуйте.

А если указать GUID, тоже ошибка?

https://www.cryptopro.ru...&m=115327#post115327


А вот если указать (uuid для 4-ки взял по предложенной Вами ссылке),то всё заработало.
СПАСИБО ОГРОМНОЕ!
А-то мне тут в одном УЦ заявили 'точного механизма определения срока действия лицензии у КриптоПро CSP нет. Об этом нам сами разработчики КриптоПро сказали'. Ну вот я и усомнился в том, что они могли такое сказать и решил сам проверить и оказалось, что есть точный механизм :-)
Осталось только понять, где эти uuid можно взять. В реестре есть буквально 3 места, где они упоминаются и опять же в каких-то разделах с uuid, например вот:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Products\7AB5E7046046FB044ACD63458B5F481C\InstallProperties

А что это за {7AB5E7046046FB044ACD63458B5F481C} - да бог его знает...
Получается, что всё таки нет точного механизма и нельзя однозначно для любой версии сказать версию берёшь отсюда, uuid продукта смотришь тут и по нему получаешь инфу по лицензии? Ну или просто принимаешь эти uuid как факт, полученный от разработчиков и просто при выходе новой версии добавляешь в обработку новый.
Offline Андрей *  
#4 Оставлено : 23 мая 2020 г. 9:07:48(UTC)
Андрей *

Статус: Сотрудник

Группы: Участники
Зарегистрирован: 26.07.2011(UTC)
Сообщений: 12,625
Мужчина
Российская Федерация

Сказал «Спасибо»: 492 раз
Поблагодарили: 2034 раз в 1578 постах
Дистрибутив устанавливается через msiexec, у каждой версии (4,5) свой guid продукта и страница с описанием параметров установки, также указан и guid продукта (в примере - команда для удаления csp) :
https://www.cryptopro.ru....aspx?g=posts&t=7782

Техническую поддержку оказываем тут
Наша база знаний
Offline PlutoVYS  
#5 Оставлено : 25 мая 2020 г. 12:11:01(UTC)
PlutoVYS

Статус: Участник

Группы: Участники
Зарегистрирован: 15.06.2019(UTC)
Сообщений: 11
Российская Федерация
Откуда: Москва

Автор: Андрей * Перейти к цитате
Дистрибутив устанавливается через msiexec, у каждой версии (4,5) свой guid продукта и страница с описанием параметров установки, также указан и guid продукта (в примере - команда для удаления csp) :
https://www.cryptopro.ru....aspx?g=posts&t=7782


Андрей, спасибо за информацию, возможно она тоже пригодится.
Хотелось бы ещё выяснить, что возвращает в ответ метод 'GetExpireDate'.
Как я понял, по логике вещей, если лицензия бессрочная, то в ответ выдаётся "0:00:00". Если же лицензия временная, то получаем "ДД.ММ.ГГГГ ЧЧ:ММ:СС".
По крайней мере на рабочих станциях у меня возврат получается именно такой.
Пробовал на Крипто Про 4.0.9963 (Windows 10 Корпоративная) вот такими строчками:

Код:
set obj = CreateObject("CPCSPLicense.CPCSPLicense")
CPro_LED = obj.GetExpireDate("{407E5BA7-6406-40BF-A4DC-3654B8F584C1}")
msgbox (CPro_LED)


Стал пробовать на серверной ОС (Крипто Про 4.0.9842 (Windows Server 2012 R2)) и в ответ получаю всё что угодно, кроме того, что надо, от 'Данные настройки продукта повреждены' и до абсолютно произвольной даты и времени. Т.е. 10 раз запустишь и 10 разных значений получишь, совпасть могут только 'Данные настройки продукта повреждены'.

Есть какие-то комментарии по этому моменту?

Отредактировано пользователем 25 мая 2020 г. 12:12:29(UTC)  | Причина: исправлены описки

Offline Андрей *  
#6 Оставлено : 25 мая 2020 г. 19:06:39(UTC)
Андрей *

Статус: Сотрудник

Группы: Участники
Зарегистрирован: 26.07.2011(UTC)
Сообщений: 12,625
Мужчина
Российская Федерация

Сказал «Спасибо»: 492 раз
Поблагодарили: 2034 раз в 1578 постах
На vbs пример выше?
И при генерации исключения, оно не обрабатывается и переменная содержит разное значение, так ?
Техническую поддержку оказываем тут
Наша база знаний
Offline PlutoVYS  
#7 Оставлено : 25 мая 2020 г. 20:19:33(UTC)
PlutoVYS

Статус: Участник

Группы: Участники
Зарегистрирован: 15.06.2019(UTC)
Сообщений: 11
Российская Федерация
Откуда: Москва

Автор: Андрей * Перейти к цитате
На vbs пример выше?
И при генерации исключения, оно не обрабатывается и переменная содержит разное значение, так ?


Пример да, на vbs.
Про исключение ничего сказать не могу, но переменная действительно каждый раз имеет разное значение.
Дабы исключить вообще все лишние факторы, сделал скрипт вообще без переменных, ну и естественно картина не изменилась.

Вот сделал видео результата работы на серверной ОС:
https://youtu.be/BL0wsR4cEZc
Offline Андрей *  
#8 Оставлено : 25 мая 2020 г. 22:23:35(UTC)
Андрей *

Статус: Сотрудник

Группы: Участники
Зарегистрирован: 26.07.2011(UTC)
Сообщений: 12,625
Мужчина
Российская Федерация

Сказал «Спасибо»: 492 раз
Поблагодарили: 2034 раз в 1578 постах
Код:

On Error Resume Next
Err.Clear       
set obj = CreateObject("CPCSPLicense.CPCSPLicense")
CPro_LED = obj.GetExpireDate("{407E5BA7-6406-40BF-A4DC-3654B8F584C1}")

If Err.Number = 0 Then  
   msgbox (CPro_LED)
End If


If Err.Number <> 0 Then
    msgbox ( "Error: " & Err.Number & " (Hex): " & Hex(Err.Number) )
    Err.Clear             
End If
On Error Goto 0   


Техническую поддержку оказываем тут
Наша база знаний
Offline PlutoVYS  
#9 Оставлено : 26 мая 2020 г. 11:48:27(UTC)
PlutoVYS

Статус: Участник

Группы: Участники
Зарегистрирован: 15.06.2019(UTC)
Сообщений: 11
Российская Федерация
Откуда: Москва


Андрей, спасибо за код, есть в нём для меня полезные вещи, но!
Это обработка ошибок, которые периодически возникают. Но основной-то вопрос не в том, чтоб их отследить и обработать, а в том, как узнать тип лицензии, бессрочная или с конечной датой ? На рабочей станции, если лицензия бессрочная, то даты нет вообще, а вместо времени выдаются нули (0:00:00). Так и можно отследить, а тут как понять-то? :-)
Offline Андрей *  
#10 Оставлено : 26 мая 2020 г. 11:58:13(UTC)
Андрей *

Статус: Сотрудник

Группы: Участники
Зарегистрирован: 26.07.2011(UTC)
Сообщений: 12,625
Мужчина
Российская Федерация

Сказал «Спасибо»: 492 раз
Поблагодарили: 2034 раз в 1578 постах
Цитата:
выдаются нули (0:00:00)


Да, если исключения не было и выдалось так - то значит это бессрочная лицензия.
Техническую поддержку оказываем тут
Наша база знаний
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
2 Страницы12>
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.