【问题标题】:How to sign every ocx, dll and exe file如何签署每个 ocx、dll 和 exe 文件
【发布时间】:2013-11-09 10:40:52
【问题描述】:

我正在使用 signtool 对我的文件进行签名。

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

【问题讨论】:

  • 通常使用安装程序时,您不会对包中的每个文件都进行签名,而是包括 a catalog file,它具有所有文件的哈希值,并且只需对目录进行签名。

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


【解决方案1】:

这里的问题是如何区分您的二进制文件和第三方二进制文件。您可以创建一个白名单,或者如果您一直使用您的公司名称标记您的二进制文件版本信息,您可以采用这种方法:

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

注意:此方法使用来自 PowerShell Community Extensions 的命令 (Get-FileVersionInfo),可从here 下载。

【讨论】:

  • 感谢您的回答,但我更喜欢不需要 powershell 的命令?
  • 那你为什么用 PowerShell 和 PowerShell-v2.0 标记你的问题?
  • 我更喜欢不需要 powershell 的命令,但我会使用 powershell 命令并将您的上述答案标记为答案(如果它有效),如果不使用 powershell 我不会得到答案。更喜欢添加另一个答案,因为无论如何我都赞成这个,甚至 powershell 命令也会有所帮助。
  • 这很慢,有办法并行吗?
【解决方案2】:

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

【讨论】:

    猜你喜欢
    • 2021-02-23
    • 1970-01-01
    • 2010-09-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多