通过Powershell脚本问题签署DLL和EXE文件

时间:2019-06-08 09:54:02

标签: powershell

我有一个脚本,该脚本可循环访问文件夹中的文件,并使用代码签名证书对所有.dll和.exe文件进行签名。 我的问题是,在30个左右的文件中,其中有2个文件是.exe,所有文件均已正确签名,并且签名有效,但其中一个已被选中但报告了证书错误。当我在其上执行Get-AuthenticodeSignature时,返回值为HashMismatch。 然后,如果我手动执行Set-AuthenticodeSignature,它将对文件签名,并且没有HashMismatch。 我尝试了几种遍历文件夹广告签名文件的方式,但问题仍然存在,无论何时我尝试通过脚本对特定文件进行签名,它总是返回HashMismatch

脚本是
foreach ($file in $files) {$signed = Get-AuthenticodeSignature $file if($signed -ne "Valid" ) { $result = Set-AuthenticodeSignature -FilePath $file.FullName -Certificate $Cert -IncludeChain "All" -HashAlgorithm "sha256" -TimeStampServer "http://timestamp.verisign.com/scripts/timstamp.dll" if($result.Status -eq "Valid") { {Write-Host "$file success"} } else { Write-Host "$file $result.StatusMessage "} } }

0 个答案:

没有答案