通过powershell脚本问题对dll和exe文件进行签名

通过powershell脚本问题对dll和exe文件进行签名,powershell,Powershell,我有一个脚本,它可以遍历文件夹中的文件,并使用代码签名证书对所有.dll和.exe文件进行签名。 我的问题是,在30多个文件中,其中2个文件是.exe,所有文件都已正确签名,并且签名有效,但其中一个文件已签名,但报告证书有错误。当我在上面执行Get AuthenticodeSignature时,返回值是HashMismatch。 然后,如果我手动执行设置Authenticode签名,它将对文件进行签名,并且没有哈希不匹配。 我已经尝试了多种方法来遍历文件夹ad签名文件,但问题仍然是,每当我尝试通

我有一个脚本,它可以遍历文件夹中的文件,并使用代码签名证书对所有.dll和.exe文件进行签名。 我的问题是,在30多个文件中,其中2个文件是.exe,所有文件都已正确签名,并且签名有效,但其中一个文件已签名,但报告证书有错误。当我在上面执行
Get AuthenticodeSignature
时,返回值是
HashMismatch
。 然后,如果我手动执行
设置Authenticode签名
,它将对文件进行签名,并且没有
哈希不匹配
。 我已经尝试了多种方法来遍历文件夹ad签名文件,但问题仍然是,每当我尝试通过脚本对特定文件进行签名时,它总是返回
HashMismatch

脚本是
foreach($files中的$file)
{$signed=Get AuthenticodeSignature$文件
如果($signed-ne“Valid”)
{
$result=Set AuthenticodeSignature-FilePath$file.FullName-Certificate$Cert-IncludeChain“All”-HashAlgorithm“sha256”-TimeStampServerhttp://timestamp.verisign.com/scripts/timstamp.dll"
如果($result.Status-等式“Valid”){
{写入主机“$file success”}
}
其他的
{写入主机“$file$result.StatusMessage”}
}

}

“脚本是”???where?抱歉,不知道为什么最初没有用代码发布我现在编辑了问题上面的ps1脚本示例不完整,无法运行,因为没有声明对象“$files”和“$Cert”。“脚本是”?”???where?抱歉,不知道为什么最初没有用代码发布我现在编辑了问题上面的ps1脚本示例不完整,无法运行,因为没有声明对象“$files”和“$Cert”。