|
Внимание, важное сообщение: Дорогие Друзья!
В ноябре далекого 2001 года мы решили создать сайт и форум, которые смогут помочь как начинающим, так и продвинутым пользователям разобраться в операционных системах. В 2004-2006г наш проект был одним из самых крупных ИТ ресурсов в рунете, на пике нас посещало более 300 000 человек в день! Наша документация по службам Windows и автоматической установке помогла огромному количеству пользователей и сисадминов. Мы с уверенностью можем сказать, что внесли большой вклад в развитие ИТ сообщества рунета. Но... время меняются, приоритеты тоже. И, к сожалению, пришло время сказать До встречи! После долгих дискуссий было принято решение закрыть наш проект. 1 августа форум переводится в режим Только чтение, а в начале сентября мы переведем рубильник в положение Выключен Огромное спасибо за эти 24 года, это было незабываемое приключение. Сказать спасибо и поделиться своей историей можно в данной теме. С уважением, ваш призрачный админ, BigMac... |
|
| Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [решено] Сертификаты компьютера |
|
|
[решено] Сертификаты компьютера
|
|
Пользователь Сообщения: 144 |
Добрый день!
Кто-знает как посмотреть сертификаты компьютера через autoit? Нужно получать S/N и контейнер сертификата. Аналог кода на powershell: |
|
|
Отправлено: 12:24, 19-12-2016 |
|
Новый участник Сообщения: 38
|
Профиль | Отправить PM | Цитировать #include<array.au3>
_ArrayDisplay(_GetCert())
Func _GetCert()
$psLine = "$MyCerts = dir Cert:\LocalMachine\My; Foreach($MyCert in $MyCerts) { $MyCert.SerialNumber; $MyCert.PrivateKey.CspKeyContainerInfo.UniqueKeyContainerName; }"
$iPID = Run(@ComSpec & " /c Powershell " & $psLine, "", @SW_HIDE , $stdout_child)
$sOutput = ""
While 1
$sOutput &= StdoutRead($iPID)
If @error Then
ExitLoop
EndIf
WEnd
$aRtn = stringsplit($sOutput , @LF , 2)
_ArrayDelete($aRtn , ubound($aRtn) - 1)
If ubound($aRtn) < 1 then _ArrayAdd($aRtn , "No Match Found")
Return $aRtn
EndFunc
|
|
Отправлено: 16:44, 19-12-2016 | #2 |
|
Must AutoIt Сообщения: 3054
|
Профиль | Сайт | Отправить PM | Цитировать #include <Array.au3>
#include <Date.au3>
Global $oCertStore = ObjCreate('CAPICOM.Store')
$oCertStore.Open(1, 'Root' , 0) ;Change 'Root' to 'my' for user's local machine store
Global $oCerts = $oCertStore.Certificates
Global $aCerts[$oCerts.Count + 1][7] = [[$oCerts.Count, 'IssuerName', 'SerialNumber', 'SubjectName', 'Version', 'ValidFromDate', 'ValidToDate']]
Global $iC = 1
For $oCert In $oCerts
$aCerts[$iC][1] = $oCert.IssuerName
$aCerts[$iC][2] = $oCert.SerialNumber
$aCerts[$iC][3] = $oCert.SubjectName
$aCerts[$iC][4] = $oCert.Version
$aCerts[$iC][5] = _DateFormat($oCert.ValidFromDate)
$aCerts[$iC][6] = _DateFormat($oCert.ValidToDate)
$iC += 1
Next
_ArrayDisplay($aCerts)
Func _DateFormat($sDate)
Local $aDate = StringRegExp($sDate, '(\d{4})(\d\d)(\d\d)(\d\d)(\d\d)(\d\d)', 3)
If UBound($aDate) < 6 Then
Return SetError(1, 0, $sDate)
EndIf
Return StringFormat('%02i/%02i/%04i %02i:%02i:%02i', $aDate[2], $aDate[1], $aDate[0], $aDate[3], $aDate[4], $aDate[5])
EndFunc
|
|
------- Последний раз редактировалось Creat0R, 20-12-2016 в 09:34. Отправлено: 09:20, 20-12-2016 | #3 |
|
Пользователь Сообщения: 144
|
Профиль | Отправить PM | Цитировать |
|
Отправлено: 11:02, 20-12-2016 | #4 |
|
Новый участник Сообщения: 38
|
Профиль | Отправить PM | Цитировать Добавил получение PrivateKey:
....
Global $oCertStore = ObjCreate('CAPICOM.Store')
;1 - CAPICOM_LOCAL_MACHINE_STORE
;2 - CAPICOM_CURRENT_USER_STORE
$oCertStore.Open(1, 'My' , 0) ; Change 'Root' to 'my' for user's local machine store ; First param: 1- Local Machine ; 2 - Current User
Local $oCerts = $oCertStore.Certificates
Local $aCerts[$oCerts.Count + 1][8] = [[$oCerts.Count, 'IssuerName', 'SerialNumber', 'SubjectName', 'Version', 'ValidFromDate', 'ValidToDate', 'PrivateKey UniqueContainerName']]
Local $iC = 1
;Local $oPriv = $oCertStore.PrivateKey.UniqueContainerName
For $oCert In $oCerts
$aCerts[$iC][1] = $oCert.IssuerName
$aCerts[$iC][2] = $oCert.SerialNumber
$aCerts[$iC][3] = $oCert.SubjectName
$aCerts[$iC][4] = $oCert.Version
$aCerts[$iC][5] = _DateFormat($oCert.ValidFromDate)
$aCerts[$iC][6] = _DateFormat($oCert.ValidToDate)
If $oCert.HasPrivateKey() Then
$aCerts[$iC][7] = $oCert.PrivateKey.UniqueContainerName
EndIf
$iC += 1
Next
....
|
|
|
Отправлено: 11:42, 20-12-2016 | #5 |
|
Must AutoIt Сообщения: 3054
|
Профиль | Сайт | Отправить PM | Цитировать #include <Array.au3>
Global Const $CAPICOM_LOCAL_MACHINE_STORE = 1
Global Const $CAPICOM_CURRENT_USER_STORE = 2
Global $iOption = $CAPICOM_LOCAL_MACHINE_STORE ;Change only this to one of above options
$aCerts = _Certificates_Get($iOption)
If @error Then
Exit MsgBox(16, @ScriptName, 'Unable to create CAPICOM.Store object' & @CRLF & @CRLF & ' ==> EXIT')
EndIf
_ArrayDisplay($aCerts)
Func _Certificates_Get($iOption)
Local Const $sOption = ($iOption = $CAPICOM_CURRENT_USER_STORE ? 'My' : 'Root')
Local $oCertStore = ObjCreate('CAPICOM.Store')
If Not IsObj($oCertStore) Then
Return SetError(1, 0, 0)
EndIf
$oCertStore.Open($iOption, $sOption, 0)
Local $oCerts = $oCertStore.Certificates
If Not IsObj($oCerts) Then
Return SetError(2, 0, 0)
EndIf
Local $iC = 1
Local $aCerts[$oCerts.Count + 1][8] = [[$oCerts.Count, 'IssuerName', 'SerialNumber', 'SubjectName', 'Version', 'ValidFromDate', 'ValidToDate', 'PrivateKey UniqueContainerName']]
For $oCert In $oCerts
$aCerts[$iC][1] = $oCert.IssuerName
$aCerts[$iC][2] = $oCert.SerialNumber
$aCerts[$iC][3] = $oCert.SubjectName
$aCerts[$iC][4] = $oCert.Version
$aCerts[$iC][5] = _Certificates_DateFormat($oCert.ValidFromDate)
$aCerts[$iC][6] = _Certificates_DateFormat($oCert.ValidToDate)
If $oCert.HasPrivateKey() Then
$aCerts[$iC][7] = $oCert.PrivateKey.UniqueContainerName
EndIf
$iC += 1
Next
Return $aCerts
EndFunc
Func _Certificates_DateFormat($sDate)
Local $aDate = StringRegExp($sDate, '(\d{4})(\d\d)(\d\d)(\d\d)(\d\d)(\d\d)', 3)
If UBound($aDate) < 6 Then
Return SetError(1, 0, $sDate)
EndIf
Return StringFormat('%02i/%02i/%04i %02i:%02i:%02i', $aDate[2], $aDate[1], $aDate[0], $aDate[3], $aDate[4], $aDate[5])
EndFunc
|
|
------- Отправлено: 14:13, 20-12-2016 | #6 |
|
|
Участник сейчас на форуме |
|
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
| Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
| V. 2007 - Сертификаты | Emaxim | Microsoft Exchange Server | 2 | 01-07-2013 11:00 | |
| Вопрос - VPN и Сертификаты. | mhm | Защита компьютерных систем | 1 | 12-04-2013 11:57 | |
| Разное - Покосячились сертификаты | Danila-GFX | Microsoft Windows 2000/XP | 1 | 22-09-2012 18:08 | |
| сертификаты | URIK-79 | Непонятные проблемы с Железом | 2 | 15-05-2012 11:50 | |
| V. 2010 - Сертификаты | Alex-4u | Microsoft Exchange Server | 2 | 17-01-2011 23:53 | |
|