|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » Любой язык - Крипто про он же csptest.exe |
|
Любой язык - Крипто про он же csptest.exe
|
Новый участник Сообщения: 46 |
Здравствуйте! Уважаемые умы!
У меня по работе очень много разных эцп, от разных УЦ. Соответственно каждый УЦ при формировании ключа, обзывает его по своему, а зачастую это выглядит вот так "iojng-er4gedfgv-454g-45g45g" и т.д. Ну в общем все ключи называются по разному, бухгалтера несчастные по пол часа ищут нужное ЭЦП для работы с компанией по отчетности. Смысл все темы таков, хочу взять все ключи на флешке (их порядка 1500) и через скрипт каждую подпись переименовать по человечески по образцу (НО информацию о ключе нужно брать из открытого ключа "Сертификата" т.к. актуальная и полная информация только там) образец "Ромашка, ООО от 13.01.2019 СКБ Контур" есть ли такая возможность? |
|
Отправлено: 11:52, 02-07-2019 |
Новый участник Сообщения: 46
|
Профиль | Отправить PM | Цитировать Цитата YuS_2:
PS C:\Windows\system32> $subject = (($str[1].p2 -replace ',(?=[^=,]*,)') -split ',') PS C:\Windows\system32> $subject ОГРН=1234567890 СНИЛС=1234567890 ИНН=1234567890 E=1234567890_1234567890 OU=Общее подразделение T=Генеральный директор CN=Иванов Иванов Иванович SN=Иванов G=Иванов Иванович C=RU L=Москва STREET="ул.Лобненская 21" Надо как то удалить из вывода конец строки Suject вместе с STREET="ул.Лобненская 21" чтобы таких ошибок больше не выскакивало. 1. Есть список в файле такого вида: \\.\FAT12_F\99296548-3222-4f15-ada7-79d6bf8283ad \\.\FAT12_F\86ba2ee2-c1ab-4e3a-b750-94cd57b6f1d5 \\.\FAT12_F\370415f5-9085-4582-b57c-bf746947a814 \\.\FAT12_F\cef3154b-5890-4614-8932-a2c73ea845bc \\.\FAT12_F\e2a52506-f46a-449c-8e04-7a10e6d4e6aa \\.\FAT12_F\62ed7b12-33d6-42b6-8774-ecac899a06ba \\.\FAT12_F\77456a81-4b90-46b5-b276-147a4507d8a7 \\.\FAT12_F\53dfc883-8f5d-4cef-bce4-4ed0737fcf40 \\.\FAT12_F\83dce872-d49f-45d6-8761-9be05d915fe5 \\.\FAT12_F\76a5248e-6d98-4400-a7c4-766d7013c1fd \\.\FAT12_F\d232b854-0356-4cc4-b51f-9b5eda1edf6a \\.\FAT12_F\73a78cad-2b53-47df-bc9a-c12959ee5ad5 \\.\FAT12_F\82176ef9-076e-4661-bf70-4f035307ea54 \\.\FAT12_F\ea67cde7-2a3e-4f24-afe4-5553b6290b13 и т.д. 2. Копирование так и не работает ругается: >> cmd /c """C:\Program Files\Crypto Pro\CSP\csptest.exe"" -keycopy -contsrc "$fld" -contdest ""\\.\FAT12_D\$a""" -pindest=""""" WARNING: Useless positional arguments found: "Наталья", "Николаевна" C:\Program Files\Crypto Pro\CSP\csptest.exe -keycopy [<options>] CSPTEST copy container <options>: -provsrc <name> Specify source provider name -provdest <name> Specify destination provider name -typesrc <type> Specify source provider type -typedest <type> Specify destination provider type -silent Do not show any user interface -machinesrc Use CRYPT_MACHINE_KEYSET -machinedest Use CRYPT_MACHINE_KEYSET -contsrc <cont> Source container -contdest <cont> Destination container -archivable Generate source key with CRYPT_ARCHIVABLE flag -pinsrc <PIN> Source container pin -pindest <PIN> Destination container pin -trace <mode> Log level for internal messages -tfmt <flags> Log format for internal messages -help Print this help Total: SYS: 0,000 sec USR: 0,000 sec UTC: 0,034 sec [ErrorCode: 0x00000001] |
|
Отправлено: 15:36, 05-07-2019 | #31 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Crazy Сообщения: 1231
|
Профиль | Отправить PM | Цитировать Цитата ownsmir:
$issuer = ($str[0].p2 -replace ',(?=[^=,]*(,|$))') -split ','|convertfrom-stringdata $subject = ($str[1].p2 -replace ',(?=[^=,]*(,|$))') -split ','|convertfrom-stringdata Цитата ownsmir:
Пока проверьте исправленные строки, далее разберемся с выводом строки из переменной $a... что-то там явно не соответствует допустимому вводу csptest.exe Цитата ownsmir:
|
|||
------- Отправлено: 17:39, 05-07-2019 | #32 |
Новый участник Сообщения: 46
|
Профиль | Отправить PM | Цитировать YuS_2, YuS_2, YuS_2, YuS_2, YuS_2, YuS_2, YuS_2,
Цитата YuS_2:
Собственно выкладываю получившийся код на текущий момент рабочий #requires -v 3.0 $fld = "\\.\FAT12_H\0c91ac552c88477eb85fb27ec79fe7df" $tmp = cmd /c """C:\Program Files\Crypto Pro\CSP\certmgr.exe"" -list -cont ""$fld""" $str = $tmp|?{$_ -match 'Not valid after|Subject|Issuer'}|convertfrom-string -d ' : ' $issuer = ($str[0].p2 -replace ',(?=[^=,]*(,|$))') -split ','|convertfrom-stringdata $subject = ($str[1].p2 -replace ',(?=[^=,]*(,|$))') -split ','|convertfrom-stringdata $date = [datetime]::parse(($str[2].p2 -replace 'UTC','GMT')) $a = ($subject.o -replace '"')+$(" {0:dd.MM.yyyy} " -f $date)+($issuer.o -replace '"') cmd /c """C:\Program Files\Crypto Pro\CSP\csptest.exe"" -keycopy -contsrc ""$fld"" -contdest ""\\.\FAT12_D\$a"" -pindest=""" 1. Чтобы в $fld = подставлялись строки из текстового файла со списком (или еще лучше чтобы строка подставилась и удалилась в тектовом файле если нет ошибок) кстати над эти думал, писать допом все в лог, чтобы ошибки разобрать если что... |
|
Отправлено: 10:57, 06-07-2019 | #33 |
Crazy Сообщения: 1231
|
Профиль | Отправить PM | Цитировать Цитата ownsmir:
#requires -v 3.0 $list = 'listcontainer.txt' $certmgr = 'C:\Program Files\Crypto Pro\CSP\certmgr.exe' $csptest = 'C:\Program Files\Crypto Pro\CSP\csptest.exe' $dst = '\\.\FAT_D' gc $list -enc utf8|%{ try{ [string]$container = $_ $tmp = cmd /c """$certmgr"" -list -cont ""$_""" $str = $tmp|?{$_ -match 'Not valid before|Subject|Issuer'}|convertfrom-string -d ' : ' $issuer = ($str[0].p2 -replace ',(?=[^=,]*(,|$))') -split ','|convertfrom-stringdata $subject = ($str[1].p2 -replace ',(?=[^=,]*(,|$))') -split ','|convertfrom-stringdata $date = [datetime]::parse(($str[2].p2 -replace 'UTC','GMT')) $a = ($subject.o -replace '"')+' '+($subject.cn -replace '"')+ ` $(" {0:dd.MM.yyyy} " -f $date)+($issuer.o -replace '"')+' '+($issuer.cn -replace '"') cmd /c """$csptest"" -keycopy -contsrc ""$_"" -contdest ""$dst\$a"" -pindest=""""" } catch { write-output "Произошла ошибка: $_ , контейнер: $container"|out-file error.log -enc utf8 } } |
|
------- Последний раз редактировалось YuS_2, 06-07-2019 в 17:41. Причина: поправки в коде Отправлено: 12:49, 06-07-2019 | #34 |
Новый участник Сообщения: 46
|
Профиль | Отправить PM | Цитировать Доброго дня... Хочу вернуться к данной теме...
Есть задача сделать помимо всей работы скрипта чтобы он дополнительно сравнил дату выпуска ключа и не обрабатывал его если дата меньше 16.12.2018 (на сегодняшний день), не подскажите как его изменить? Пробывал сам закончилось не рабочим скриптом. Использую этот код: #requires -v 3.0 $list = 'C:\erkey.txt' $certmgr = 'C:\Program Files\Crypto Pro\CSP\certmgr.exe' $csptest = 'C:\Program Files\Crypto Pro\CSP\csptest.exe' $dst = '\\.\FAT12_J' gc $list -enc utf8|%{ try{ [string]$container = $_ $tmp = cmd /c """$certmgr"" -list -cont ""$_""" $str = $tmp|?{$_ -match 'Not valid before|Subject|Issuer'}|convertfrom-string -d ' : ' $issuer = ($str[0].p2 -replace ',(?=[^=,]*(,|$))') -split ','|convertfrom-stringdata $subject = ($str[1].p2 -replace ',(?=[^=,]*(,|$))') -split ','|convertfrom-stringdata $date = [datetime]::parse(($str[2].p2 -replace 'UTC','GMT')) $a = ($subject.o -replace '"')+ ` $(" {0:dd.MM.yyyy} " -f $date)+($issuer.o -replace '"') $container $a cmd /c """$csptest"" -keycopy -contsrc ""$_"" -contdest ""$dst\$a"" -pindest=""""" } catch { write-output "Произошла ошибка: $_ , контейнер: $container"|out-file error.log -enc utf8 } } |
Отправлено: 15:11, 17-12-2019 | #35 |
Новый участник Сообщения: 46
|
Профиль | Отправить PM | Цитировать |
Отправлено: 15:55, 17-12-2019 | #36 |
Crazy Сообщения: 1231
|
Профиль | Отправить PM | Цитировать Цитата ownsmir:
![]() Цитата ownsmir:
Вопрос только в том, где брать эту дату выпуска ключа. Возможно, это дата из поля "Not valid before"? Тогда, если не ошибаюсь, требуется это: #requires -v 3.0 $d = get-date('16.12.2018') $list = 'C:\erkey.txt' $certmgr = 'C:\Program Files\Crypto Pro\CSP\certmgr.exe' $csptest = 'C:\Program Files\Crypto Pro\CSP\csptest.exe' $dst = '\\.\FAT12_J' gc $list -enc utf8|%{ try{ [string]$container = $_ $tmp = cmd /c """$certmgr"" -list -cont ""$_""" $str = $tmp|?{$_ -match 'Not valid before|Subject|Issuer'}|convertfrom-string -d ' : ' $issuer = ($str[0].p2 -replace ',(?=[^=,]*(,|$))') -split ','|convertfrom-stringdata $subject = ($str[1].p2 -replace ',(?=[^=,]*(,|$))') -split ','|convertfrom-stringdata $date = [datetime]::parse(($str[2].p2 -replace 'UTC','GMT')) $a = ($subject.o -replace '"')+ ` $(" {0:dd.MM.yyyy} " -f $date)+($issuer.o -replace '"') $container $a if ($date -gt $d){ cmd /c """$csptest"" -keycopy -contsrc ""$_"" -contdest ""$dst\$a"" -pindest=""""" } } catch { write-output "Произошла ошибка: $_ , контейнер: $container"|out-file error.log -enc utf8 } } Цитата ownsmir:
|
|||
------- Отправлено: 09:30, 18-12-2019 | #37 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
[решено] Крипто Про CSP 4.0 и R4 в тихом режиме (FYI) | merdzd | Автоматическая установка приложений | 3 | 22-04-2019 01:04 | |
Разное - Windows 10 и Крипто-про CSP 3.9 | Auberdin | Microsoft Windows 10 | 1 | 21-09-2015 22:45 | |
Разное - как создать exe для запуска другого exe с параметрами, из той же папки | vzli_izv | Программирование и базы данных | 12 | 08-06-2013 14:49 | |
iRU Stilo 2214L (он же Mitac 8081) не видит DVD | D@nilYcH | Ноутбуки | 0 | 31-07-2011 16:19 | |
MacBook Pro 2011. Какой же он? | Welron | Новости железа | 0 | 22-02-2011 22:07 |
|