SignTool错误:访问被拒绝

时间:2011-06-30 09:06:58

标签: .net code-signing authenticode

我正在尝试使用安装了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提示也没有显示效果。

有什么想法吗?

4 个答案:

答案 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上的评论)