Можно воспользоваться COM-объектом PKI.VCERT. Вот пример скрипта.
<script language="vbscript" type="text/vbscript">
Sub SignFiles
On Error Resume Next
Err.Clear
Dim errText
Dim Crypt
Dim SignParam
Set Crypt = CreateObject("PKI.VCERT")
If Crypt is Nothing Then
MsgBox "Ошибка загрузки объекта PKI.VCERT", 0, "Ошибка"
Exit Sub
End If
Crypt.Initialize "MY", 0
If Err.Number=0 Then
Set SignParam=CreateObject("PKI.SignParam")
SignParam.flag = 1 ' Flag_Sign_Pkcs7
Crypt.SignFile SignParam, "c:\hta\1.dat", Empty, "c:\hta\1.dat.p7s"
Crypt.SignFile SignParam, "c:\hta\2.dat", Empty, "c:\hta\2.dat.p7s"
If Err.Number=0 Then
MsgBox "OK", 0, ""
End If
Else
Crypt.GetPKIErrorTextVBS Err.number, errText
MsgBox errText, 0, "Ошибка"
End If
Set SignParam = Nothing
Set Crypt = Nothing
End Sub
</script>
Но нужно учесть, что VCERTCOM предназначена для вызова из Visual Basic и Delphi, не все функции работают при вызове из скриптов. Библиотека VCERTCOM описана в руководстве программиста (ВАМБ.00106-01 33 01).