如何签署每个ocx,dll和exe文件

时间:2013-10-30 00:24:36

标签: powershell batch-file code-signing code-signing-certificate codesign

我正在使用signtool签署我的文件。

如何递归搜索文件夹和子文件夹中的所有ocx,dll和exes,然后使用命令提示符对它们进行全部签名?我只想签署由我而不是第三方开发的那些。

2 个答案:

答案 0 :(得分:2)

这里的问题是如何将二进制文件与第三方二进制文件区分开来。您可以创建白名单,或者如果您一直使用公司名称标记二进制fileversioninfo,则可以采用以下方法:

Get-ChildItem *.* -r -inc *.dll,*.ocx,*.exe | 
    Where {($_ | Get-FileVersionInfo).CompanyName -match 'your-company-name'} | 
    Foreach {signtool sign <options> $_.Fullname}

注意:此方法使用PowerShell社区扩展中的命令(Get-FileVersionInfo),可以下载here

答案 1 :(得分:2)

尝试 @echo off FOR / f&#34; tokens = *&#34; %% G IN(&#39; dir / s * .dll * .ocx * .exe&#39;)DO(echo %% G set A =&#34; %% G&#34; signtool sign / f&# 34; C:\ Certificates \ FakeCertificate.pfx&#34;%A%  )