Статус: Активный участник
Группы: Участники
Зарегистрирован: 20.11.2009(UTC) Сообщений: 86 Откуда: Регионы...
Поблагодарили: 2 раз в 2 постах
|
Всё сделал проще, на VBS:Код:' Устанавливает файлы по маске "*.cer" и некоторые дополнительные функции для работы с УЦ.
' Данное ПО не является СКЗИ
' Made by NorN 2014. VBS it's Easy.
On Error Resume Next
otvet = MsgBox ("Эта программа установит корневые сертификаты необходимые для корректной работы сайта удостоверяющего центра************. " & vbCrLf & vbCrLf & "Считыватель РЕЕСТР в СКЗИ КриптоПро будет удалён! Если электронные подписи хранятся в РЕЕСТРЕ, они станут недоступны." & vbCrLf & vbCrLf & "Электронную подпись разрешено хранить только на отчуждаемых носителях информации - USB Flash-диски, RUToken, EToken, одна подпись - один носитель!" & vbCrLf & vbCrLf & "Вы используете ВНЕШНИЕ носители для хранения электронной подписи?", 4)
if otvet = 6 then
path = "\certs\"
Set WshShell = WScript.CreateObject( "WScript.Shell" )
Set objNetwork = CreateObject( "WScript.Network" )
Set FSO = CreateObject( "Scripting.FileSystemObject" )
Set LogFile = FSO.OpenTextFile( "log.txt", 8, True )
LogFile.write vbCrLf & vbCrLf & Now( ) & vbCrLf
LogFile.write "Имя пользователя: " & objNetwork.UserName & vbCrLf
If Err.Number <> 0 Then
LogFile.write vbCrLf & "Ошибка скрипта № 1, ошибка системы № " & Err.Number & " " & Err.Description
Err.Clear
End if
i = 0
CurDir = (WshShell.CurrentDirectory)
for each fn in FSO.GetFolder( CurDir & path ).Files
if right(fn.name, 4) = ".crt" or right(fn.name, 4) = ".cer" then
comline = "certmgr -add -c " & chr(34) & fn & chr(34) & " -s -r localMachine root"
WshShell.Run comline, 7, true
LogFile.write comline & vbCrLf
i = i + 1
If Err.Number <> 0 Then
LogFile.write vbCrLf & "Ошибка скрипта № 1, ошибка системы № " & Err.Number & " " & Err.Description
Err.Clear
MsgBox "Ошибка установки № 1, ошибка системы № " & Err.Number & " " & Err.Description
End if
End if
next
'записываем в реестр
RegFileName = CurDir & "\certs\oids.reg"
WshShell.run "regedit /s " + """" + RegFileName + """", 7, true
If Err.Number <> 0 Then
LogFile.write vbCrLf & "Ошибка скрипта № 2, ошибка системы № " & Err.Number & " " & Err.Description
Err.Clear
MsgBox "Ошибка установки № 2, ошибка системы № " & Err.Number & " " & Err.Description
End if
' записываем в LogFile
LogFile.write "Установлено " & i & " сертификатов" & vbCrLf & Now( )& vbCrLf & "------------------------" & vbCrLf
LogFile.close
' читаем версию КриптоПро
DiRegedit = WshShell.RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Products\05480A45343B0B0429E4860F13549069\InstallProperties\DisplayVersion")
mesNo = 0
If left(DiRegedit,1) < 3 or (left(DiRegedit,6) <> "3.6.77" and left(DiRegedit,1) = 3) then
otvet1 = MsgBox ("Установка сертификатов завершена, однако обнаружена старая версия СКЗИ КриптоПро - " & DiRegedit & " (либо СКЗИ КриптоПро не установлено). Перед началом работы с удостоверяющем центром *********, пожалуйста, установите новую версию: http://cr.**********.ru/32.exe. Установка проста, номер лицензи не требуется." & vbCrLf & "Скачать актуальную версию СКЗИ КриптоПро сейчас?",4)
If otvet1 = 6 then
WshShell.Run "explorer /e,/root,""http://cr.***************.ru/32.exe"""
If Err.Number <> 0 Then
LogFile.write vbCrLf & "Ошибка скрипта № 3, ошибка системы № " & Err.Number & " " & Err.Description
Err.Clear
MsgBox "Ошибка установки № 3, ошибка системы № " & Err.Number & " " & Err.Description
End if
else
MsgBox "Установка сертификатов завершена, однако обнаружена старая версия СКЗИ КриптоПро. Работа с удостоверяющем центром *************** невозможна!", 64
End if
mesNo = 1
End if
' читаем версию КриптоПро (конец)
if mesNo = 0 then MsgBox "Установка сертификатов завершена"
Else
MsgBox "Установка сертификатов отменена", 64
End If
|