2011-06-30 188 views
2

我试图验证码签署与VS2010安装2008 R2的x64的Windows Server上的一个新的代码签名证书.NET应用程序,但SignTool保持与访问响应被拒绝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 

证书安装到用户的个人存储中,并且该用户是本地管理员组的成员。我也尝试使用.pfx文件进行签名,但不断收到相同的错误。禁用UAC提示也没有效果。

任何想法?

回答

2

原因是私钥保护已启用,但除非以管理员身份运行命令提示符,否则相应的“一个应用程序正在请求访问受保护的项目”。提示没有出现。

要解决此问题,我必须删除证书和密钥,然后将其从.pfx文件重新导入,这次不选择强大的私钥保护选项。

+4

对于将来的读者:还要确保您正在尝试签名的文件未标记为只读,那是我的问题。 – eselk

+0

感谢@eselk,您的建议对我而言是正确的解决方案。 –

4

我也有这个pb在Windows 8中使用signtool.exe。要解决,你必须直接从c:\ windows \ system32 \ cmd.exe运行cmd.exe,点击“以管理员身份运行”。

0

我有同样的问题,但在我的情况下,我试图从在LocalSystem帐户下运行的Windows服务运行。将其更改为常规帐户解决了问题。