Search code examples
excelwindowsms-officedigital-signature

Issue signing XLSM files using OfficeSips and Signtool


After installing vcredist, Windows SDK (specifically signing, everything else was skipped), and OfficeSips, I still cannot use Signtool to sign XLSM files.

I have made a folder in Program Files for all of the OfficeSips files, and I've registered msosip.dll and msosipx.dll. I've also made the key HKLM\SOFTWARE\Microsoft\VBA, and populated it with REG_SZ Vbe71DllPath as the readme instructed. Despite all this, Signtool still comes back with "This file format cannot be signed because it is not recognized." when attempting to sign a macro-enabled Excel sheet. I have also attempted using wintrust.dll.ini as the readme instructed, but that doesn't work either, instead causing Signtool to terminate immediately instead of giving an error.


Solution

  • You are probably running the 64bit version of signtool, msosip.dll and msosipx.dll are 32bit so can only be used by the 32bit version of signtool.exe.

    In a powershell console you can run gcp signtool and it will tell you the path that signtool is being run from.

    Generally speaking, if the path starts with C:\Program Files(x86) it is the 32bit version and if it starts with C:\Program Files it will be the 64bit version.