【发布时间】:2012-01-30 17:06:39
【问题描述】:
我在尝试签署文件时收到“SignTool 错误:访问被拒绝”。当我使用管理员 cmd 时,一切正常。但是,此过程将在 TFS 2010 构建过程中使用,并且使用带有 signtool 的 InvokeProcess 任务会提供与非管理员命令提示符相同的访问被拒绝消息。
更多信息:
- 在 Win2008 R2 企业计算机上。
- 用户是机器管理员并且在域中。
- TFS 构建服务也设置为此用户运行。
- 使用按照以下说明创建的自签名证书:How do I create a self-signed certificate for code signing on Windows?
按照这些说明操作后,我有以下文件:
- MyCA.cer
- MyCA.pvk
- MySPC.cer
- MySPC.pvk
- MySPC.pfx
MyCA 在我的受信任的根证书颁发机构中 我按照此处的建议将 MySPC.pfx 导入个人证书:SignTool error: Access is denied
为了进行签名,我使用了导入到 Personal 部分的 MySPC.pfx 的指纹,因此我的 signtool 命令如下所示:
签名 /sha1 1e9d7b5ad98552d9c58944e3f3903e6b929f4819 /t http://timestamp.verisign.com/scripts/timestamp.dll“文件名”
这再次在管理员模式下工作。这在以管理员身份运行 cmd 时也有效:
sign /f "C:\Code Signing Non-Release\MySPC.pfx" /t http://timestamp.verisign.com/scripts/timestamp.dll "FileName"
一般来说是代码签名的新手,因此欢迎提供任何帮助。
【问题讨论】:
-
如果构建服务帐户已经是您构建盒上的管理员,是否可以关闭 UAC?
标签: code-signing tfsbuild