If Err.Number = E_ADS_PROPERTY_NOT_FOUND Then WScript.Echo "No assigned certificates" WScript.Quit Else Set objShell = CreateObject("WScript.Shell") Set objFSO = CreateObject("Scripting.FileSystemObject") strPath = "." intFileCounter = 0
For Each arrUserCertificate in arrUserCertificates strFileName = "file" & intFileCounter strFullName = objFSO.BuildPath(strPath, strFileName) Set objFile = objFSO.OpenTextFile(strFullName, ForWriting, True)
For i = 1 To LenB(arrUserCertificate) ReDim Preserve arrUserCertificatesChar(i - 1) arrUserCertificatesChar(i-1) = _ Hex(AscB(MidB(arrUserCertificate, i, 3))) Next
intCounter=0 For Each HexVal in arrUserCertificatesChar intCounter=intCounter + 1 If Len(HexVal) = 1 Then objFile.Write(0 & HexVal & " ") Else objFile.Write(HexVal & " ") End If Next objFile.Close Set objFile = Nothing
Set objExecCmd1 = objShell.Exec _ ("certutil -decodeHex " & strFileName & " " & strFileName & ".cer") Do While objExecCmd1.Status = WshRunning WScript.Sleep 100 Loop Set objExecCmd1 = Nothing
Set objExecCmd2 = objShell.Exec("certutil " & strFileName & ".cer") Set objStdOut = objExecCmd2.StdOut Set objExecCmd2 = Nothing
WScript.Echo VbCrLf & "Certificate " & intFileCounter + 1 While Not objStdOut.AtEndOfStream strLine = objStdOut.ReadLine If InStr(strLine, "Issuer:") Then WScript.Echo Trim(strLine) WScript.Echo vbTab & Trim(objStdOut.ReadLine) End If If InStr(strLine, "Subject:") Then Wscript.Echo Trim(strLine) WScript.Echo vbTab & Trim(objStdOut.ReadLine) End If If InStr(strLine, "NotAfter:") Then strLine = Trim(strLine) WScript.Echo "Expires:" Wscript.Echo vbTab & Mid(strLine, 11) End If Wend