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

cbjzeqam  于 2023-05-23  发布在  其他
关注(0)|答案(1)|浏览(118)

我目前正在尝试通过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 sign /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并执行了它。
使用以下命令注册.dll文件:**“regsvr32”**也可以工作。.dll文件的路径在注册表中可见。
还安装了Microsoft Visual C++ 2015-2019 Redistributable(x86)。
所以理论上我现在应该可以签署Excel宏了。然而,我的服务器收到一个错误消息,其中包含一个错误代码,我在Google中找不到任何相关信息。
以下是完整的输出:
考虑了以下证书:
发布至:TestCA
发布单位:TestCA
过期:Wed Feb 03 08:53:09 2021
SHA1哈希:E19 CE 363 C88 CDBCE 677 FA 170008 D 0AB 0 D98 A02 DC
EKU过滤后,只剩下一个证书。过滤器失效后,剩余1份证书。私钥过滤后,剩下1个证书。已选择以下证书:
发布至:TestCA
发布单位:TestCA
过期:Wed Feb 03 08:53:09 2021
SHA1哈希:E19 CE 363 C88 CDBCE 677 FA 170008 D 0AB 0 D98 A02 DC
将随附以下附加证书:完成添加
其他Store SignTool错误:发生意外的内部错误。

错误信息:“错误:SignerSign()失败。(-2147220492/0x800403f4)

我现在已经在不同的计算机上执行了几次如上所述的安装,所有都具有管理员权限和最新更新:

  • 私人win10电脑:可以进行.ps1和.xlsm签名
  • VM with win10 from work:可以进行.ps1和.xlsm签名
  • Win7的私有VM:只有.ps1签名工作
  • Win10专用虚拟机:只有.ps1签名工作
  • Windows Server 2012的TerminalServer:只有.ps1签名工作

您可能会说signtool.exe就是这样工作的,因为我可以在所有机器上签署PowerShell脚本。但是对宏进行签名并不总是有效的。可能和接口包有关?
我希望以前有人遇到过同样的问题,可以提供帮助。因为我都快疯了。非常感谢!

6pp0gazn

6pp0gazn1#

好吧,花了我很长时间,但我现在已经开始运作了。如果其他人也有同样的问题:
“Microsoft Office Subject Interface Packages for Digitally Signing VBA Projects”.zip包含一个readme.txt,说明必须安装“Microsoft Visual C++ Redistributal(x86)”。它后面的链接下载了“Microsoft Visual C++ 2015-2019 Redistributal(x86)”,这是最新版本。
我现在已经测试了过去几年所有可用的版本,唯一工作的是2010年的版本。我不知道为什么readme.txt指的是一个不同的版本,但错误和“解决方案”肯定是可复制的。
不管怎样,使用Visual C++ 2010,一切都很好!

相关问题