0

我正在使用signtool签署我的文件。如何签署每个ocx,dll和exe文件

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

+0

正常情况下,安装程序不会对软件包中的每个文件签名,而是包含[目录文件](http:// msdn。 microsoft.com/en-us/library/windows/hardware/ff537872%28v=vs.85%29.aspx),它具有所有文件的散列并且只是在目录上签名。 –

回答

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% )

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

+0

感谢您的答案,但是,我会更喜欢一个不需要PowerShell的命令? – user2330678

+4

那你为什么用PowerShell和PowerShell-v2.0标记你的问题? –

+0

我会更喜欢一个不需要powershell的命令,但我会使用powershell命令并将上面的答案标记为答案,如果它起作用,并且没有使用powershell,则不会获得答案。喜欢添加另一个答案,因为我反正这样做,甚至powershell命令都会有所帮助。 – user2330678