WinBatch Tech Support Home

Database Search

If you can't find the information using the categories below, post a question over in our WinBatch Tech Support Forum.

TechHome

Samples from Users

Can't find the information you are looking for here? Then leave a message over on our WinBatch Tech Support Forum.

Enumerate Certificates

 Keywords: list enumerate certificate  

;Winbatch 2007C -
;script to obtain Windows Certificates, using COM, no error-checking
;results output to text file
;
;Stan Littlefield, January 10, 2008
;Modified by Crypt, December 10, 2009 - added getinfo(0) to get certificate name
;//////////////////////////////////////////////////////////////////////////////////////
GoSub udfs

;NOTE: Several constants are truncated as they break the wb 30-CHAR limit...
CAPICOM_MEMORY_STORE        =   0
CAPICOM_LOCAL_MACHINE_STORE =   1
CAPICOM_CURRENT_USER_STORE  =   2
CAPICOM_ACTIVE_DIRECTORY_USE =   3
CAPICOM_SMART_CARD_USER_STOR =   4

CAPICOM_MY_STORE   = "My"
CAPICOM_CA_STORE   = "CA"
CAPICOM_ROOT_STORE = "Root"

CAPICOM_STORE_OPEN_READ_ONLY  =   0
CAPICOM_STORE_OPEN_READ_WRIT  =   1
CAPICOM_STORE_OPEN_MAXIMUM_A  =   2
CAPICOM_STORE_OPEN_EXISTING   = 128
CAPICOM_STORE_OPEN_INCLUDE    = 256
cFile=DirScript():"Certificates.txt"
cCerts="Personal Certificates : ":@CRLF
cCerts=cCerts:ListCerts( CAPICOM_CURRENT_USER_STORE, CAPICOM_MY_STORE ):@CRLF:@CRLF
cCerts=cCerts:"CA Certificates       : ":@CRLF
cCerts=cCerts:ListCerts( CAPICOM_LOCAL_MACHINE_STORE, CAPICOM_CA_STORE ):@CRLF:@CRLF
cCerts=cCerts:"Root Certificates     : ":@CRLF
cCerts=cCerts:ListCerts( CAPICOM_LOCAL_MACHINE_STORE, CAPICOM_ROOT_STORE ):@CRLF:@CRLF
FilePut(cFile,cCerts)
Run("notepad.exe",cFile)
Exit
;///////////////////////////////////////////////////////////////////////////////////////////


:udfs
#DefineSubRoutine ListCerts( myStoreLocation, myStoreName )
retval = ""
oStore= CreateObject( "CAPICOM.Store.2" )
oStore.Open(myStoreLocation, myStoreName, CAPICOM_STORE_OPEN_READ_ONLY || CAPICOM_STORE_OPEN_EXISTING)
oCerts = oStore.Certificates
retval = oCerts.Count:@CRLF:@CRLF

If oCerts.Count > 0
   ForEach c In oCerts
      retval = retval:"Cert. Name    : ":c.getInfo(0)   :@CRLF
      retval = retval:"Issued By     : ":c.IssuerName   :@CRLF
      retval = retval:"Subject Name  : ":c.SubjectName  :@CRLF
      retval = retval:"Version       : ":c.Version      :@CRLF
      retval = retval:"Is Valid      : ":c.IsValid      :@CRLF
      retval = retval:"Valid From    : ":c.ValidFromDate:@CRLF
      retval = retval:"Valid Until   : ":c.ValidToDate  :@CRLF
      retval = retval:"Serial Number : ":c.SerialNumber :@CRLF
      retval = retval:"Thumbprint    : ":c.Thumbprint   :@CRLF:@CRLF
   Next
EndIf
oCerts = 0
oStore= 0
Return(retval)
#EndSubRoutine

Return
;//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

Article ID:   W17458
File Created: 2009:12:10:10:47:16
Last Updated: 2009:12:10:10:47:16