signtool.exe错误:签名Excel宏时SignerSign()失败(-2147220492 / 0x800403f4)

问题描述 投票:0回答:1

我目前正在尝试通过cmd在Excel,Word和Powershell脚本中对VBA宏进行签名。

为此,我将Microsoft signtool.exe用作Windows 10 SDK的一部分:https://developer.microsoft.com/en-us/windows/downloads/windows-10-sdk/

使用以下命令对Powershell脚本签名可以正常工作:

signtool.exe标志/ f“ testca.pfx” / fd SHA256 / p“ 123456”“ test.ps1”

对于在Office文档中签名宏,还需要“用于数字签名VBA项目的Microsoft Office主题接口包”:https://www.microsoft.com/en-us/download/confirmation.aspx?id=56617

我下载了.exe并执行了它。

使用以下方法注册.ddl文件:“ regsvr32”也可以。 .dll文件的路径在注册表中可见。

还安装了Microsoft Visual C ++ 2015-2019 Redistributal(x86)。

所以从理论上讲,我现在应该可以对Excel宏进行签名。但是,我的服务器收到一条带有错误代码的错误消息,我在Google中找不到任何错误消息。

这是完整的输出:

考虑了以下证书:发给:TestCA颁发者:TestCA过期:2021年星期三08:53:09SHA1哈希:E19CE363C88CDBCE677FA170008D0AB0D98A02DC

经过EKU过滤后,只剩下一个证书。到期过滤后,剩下1个证书。经过私钥过滤后,剩下1个证书。选择了以下证书:发给:TestCA颁发者:TestCA过期:2021年星期三08:53:09SHA1哈希:E19CE363C88CDBCE677FA170008D0AB0D98A02DC

将附加以下其他证书:完成添加其他商店SignTool错误:发生意外的内部错误。错误信息:“错误:SignerSign()失败。(-2147220492 / 0x800403f4)

我现在已经在不同的计算机上多次执行如上所述的安装,全部具有管理员权限和当前更新:

  • 私人win10计算机:.ps1和.xlsm签名是可能的
  • 带有win10的VM工作:.ps1和.xlsm签名是可能的

  • 具有win 7的私有VM:仅.ps1签名有效

  • 带有Win10的私有VM:仅.ps1签名有效
  • Windows Server 2012终端服务器:仅.ps1签名有效

您可能会说signtool.exe可以这样工作,因为我可以在所有计算机上签署Powershell脚本。但是签名宏并不总是有效。可能与接口包有关?

我希望有人以前遇到过同样的问题,可以为您提供帮助。因为我为此而发疯。非常感谢!

excel vba code-signing signing signtool
1个回答
0
投票

嗯,我花了很长时间,但是现在我已经开始跑步了。如果其他人有同样的问题:

“用于数字签名VBA项目的Microsoft Office主题接口程序包。.zip包含一个readme.txt,其中指出必须安装” Microsoft Visual C ++ Redistributal(x86)”。它背后的链接下载了最新版本的“ Microsoft Visual C ++ 2015-2019 Redistributal(x86)”。

我现在已经测试了过去几年的所有可用版本,唯一可行的版本是2010版本。我不知道为什么readme.txt指的是不同的版本,但是该错误和“解决方案”肯定是可复制的。

无论如何,使用Visual C ++ 2010,一切都很好!

© www.soinside.com 2019 - 2024. All rights reserved.