我正在尝试使用安装了VS2010的Windows Server 2008 R2 x64上的新代码签名证书对.NET应用程序进行authenticode签名,但SignTool会继续响应访问被拒绝:
SignTool.exe sign /v /a /sha1 <thumbprint> MyApplication.exe
The following certificate was selected:
Issued to: <redacted>
Issued by: VeriSign Class 3 Code Signing 2010 CA
Expires: Thu Jun 28 01:59:59 2012
SHA1 hash: <thumbprint>
Done Adding Additional Store
SignTool Error: Access is denied.
SignTool Error: An error occurred while attempting to sign: MyApplication.exe
Number of files successfully Signed: 0
Number of warnings: 0
Number of errors: 1
证书安装在用户的个人存储中,用户是本地Administrators组的成员。我也尝试使用.pfx文件进行签名,但仍然遇到同样的错误。禁用UAC提示也没有显示效果。
有什么想法吗?
答案 0 :(得分:4)
我也有这个pb在Windows 8中使用signtool.exe。要解决此问题,您必须直接从c:\ windows \ system32 \ cmd.exe运行cmd.exe,单击“以管理员身份运行”。
答案 1 :(得分:2)
原因是启用了私钥保护,但除非以管理员身份运行命令提示符,否则相应的“应用程序正在请求访问受保护的项目”。提示没有出现。
要解决此问题,我必须删除证书和密钥,然后从.pfx文件重新导入它,这次不选择强私钥保护选项。
答案 2 :(得分:0)
我遇到了同样的问题,但在我的情况下,我试图从在LocalSystem帐户下运行的Windows服务运行。将其更改为常规帐户解决了这个问题。
答案 3 :(得分:0)
为我解决的是意识到我的exe是只读的。取消写保护后,SignTool便可以正常工作。
(信用:eselk在SignTool error: Access is denied上的评论)