【问题标题】:signtool.exe Error: SignerSign() failed (-2147220492/0x800403f4) when signing Excel Macrosigntool.exe 错误:签署 Excel 宏时 SignerSign() 失败 (-2147220492/0x800403f4)
【发布时间】:2020-05-31 00:18:07
【问题描述】:

我目前正在尝试通过 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 文档中的宏签名,还需要“Microsoft Office Subject Interface Packages for Digitally Signing VBA Projects”: https://www.microsoft.com/en-us/download/confirmation.aspx?id=56617

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

使用 "regsvr32" 注册 .dll 文件也有效。 .dll 文件的路径在注册表中可见。

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

所以理论上我现在应该可以签署 Excel 宏了。 但是,我的服务器收到带有错误代码的错误消息,我在 Google 中找不到任何相关信息。

这是完整的输出:

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

经过 EKU 过滤后,剩下一个证书。过期过滤器后,剩下 1 个证书。 私钥过滤后,剩下 1 个证书。选择了以下证书:
颁发给:TestCA
发布者:TestCA
过期:2021 年 2 月 3 日星期三 08:53:09
SHA1 哈希: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】:

    好吧,我花了很长时间,但我现在已经启动并运行了。如果其他人有同样的问题:

    “用于对 VBA 项目进行数字签名的 Microsoft Office 主题界面包”.zip 包含一个 readme.txt,说明必须安装“Microsoft Visual C++ Redistributal (x86)”。后面的链接下载的是“Microsoft Visual C++ 2015-2019 Redistributal (x86)”,是最新版本。

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

    不管怎样,使用 Visual C++ 2010 一切都很好!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-05-21
      • 2023-03-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多