SignTool:无法签署 XLSM (DOCM)

SignTool: can't sign XLSM (DOCM)

我对 Microsoft SignTool.exe 有个小问题。 我已经安装了 Windows 10 个 SDK 和 Office SIPs 支持 macro enabled documents。然后我按照 readme 激活 dlls 并进行了所有更改,包括:

  1. 已安装 - Microsoft Visual C++ 运行时库
  2. 将路径设置为 VBE7.DLL

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VBA]
"Vbe71DllPath"="C:\Workspace\Signing\vbe7.dll"

  1. 注册 MSOSIPX.DLL REGSVR32
  2. 我还创建了 wintrust.dll.ini 并添加了:

[1]
DLL=
GUID={6E64D5BD-CEB0-4B66-B4A0-15AC71775C48}
CryptSIPDllCreateIndirectData=_VBASipCreateIndirectData@12
CryptSIPDllGetSignedDataMsg=_VBASipGetSignedDataMsg@20
CryptSIPDllIsMyFileType2=_VBASipIsMyTypeOfFileName@8
CryptSIPDllPutSignedDataMsg=_VBASipPutSignedDataMsg@20
CryptSIPDllRemoveSignedDataMsg=_VBASipRemoveSignedDataMsg@8
CryptSIPDllVerifyIndi​​rectData=_VBASipVerifyIndi​​rectData@8

  1. 我正在使用:

    signtool sign /debug /n "Cert" /fd SHA256 test.xlsm 并发生以下情况:

SignTool 错误:无法识别此文件格式,因此无法对其进行签名。
SignTool 错误:尝试签名时发生错误:test.xlsm
成功签名的文件数:0
警告数:0
错误数:1


最后的小提示:

使用 test.exe 效果很好。

我已经通过 powershell 使用 regsvr32.exe 而不是 cmd 解决了这个问题。

重要提示!我正在我的工作文件夹 C:\Workspace\Signing.

msosipx.dll 上呼叫 regsvr32.exe

P.S。我真的不明白它为什么起作用。