Windows服务用户帐户无法访问证书存储

问题描述 投票:0回答:1

我有一个Windows 7 VM,带有两个用于源代码编译的用户帐户(condor_usr1和condor_usr2)。 condor_usr [1 | 2]帐户是管理员组的成员。我有一个HTCondor主VM,该VM定期接收作业并分配每个作业以在condor_usr [1 | 2]帐户之一上运行。 Win7 VM上的condor服务以本地系统帐户身份运行,但是正在执行的作业实际上以condor_usr [1 | 2]帐户身份运行。

我对签名已编译的可执行文件有新的要求。我已将带有私钥的证书导入Windows证书存储区中的Current User \ Personal密钥存储区。

如果我以condor_usr帐户之一登录Win7 VM(例如,通过远程桌面),则以该帐户运行的编译程序将成功签署可执行文件,而以其他帐户运行的编译程序将无法签署可执行文件。例如,如果我以condor_usr2身份登录,则在condor_usr2下运行的编译将成功签名,而在condor_usr1下运行的编译将无法签名。如果我注销,则两个帐户均无法签名。

我收到的特定错误是:

C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\MSBuild\Microsoft\VisualStudio\v15.0\OfficeTools\Microsoft.VisualStudio.Tools.Office.targets(264,9): error MSB3482: An error occurred while signing: The system cannot find the file specified.

打开一些审核日志记录,发现与签名失败同时发生的以下日志。

signing failure

目标

无论编译运行的是哪个帐户,并且都不需要用户登录,都成功签名已编译的可执行文件。

到目前为止,我已经弄清楚了>

正在编译的代码/项目是Visual Studio 2017解决方案。
    签名方法是ClickOnce清单签名(VS2017项目中的一个选项)。

  • [当开始编译作业时,该作业使用登录类型2(交互式登录)以condor_usr [1 | 2]登录。https://ss64.com/nt/syntax-logon-types.html
  • logon type
  • 我尝试过的事情

    除非另有说明,否则这些操作无效,并且已还原。

    将condor_usr帐户添加到Cryptographic Operators组。

  • 我认为用户帐户控制(UAC)可能阻止系统帐户和/或condor_usr帐户访问证书存储(或证书存储中的私钥,但是在Win7 VM上已禁用UAC。
  • 我将原始的.pfx证书文件放置在VS2017解决方案中,并将它而不是证书的目标存储在密钥库中。这没有任何效果,这使我相信该问题是某种签名许可,而不是(或者可能是)真正的证书存储周围的纯粹许可。
  • 我尝试通过远程桌面登录时开始作业,然后在作业到达签名部分之前注销远程桌面会话(实际注销,而不是断开连接)。签名失败。
  • 背景我有一个Windows 7 VM,具有两个用于源代码编译的用户帐户(condor_usr1和condor_usr2)。 condor_usr [1 | 2]帐户是管理员组的成员。我...
  • windows certificate private-key condor
    1个回答
    0
    投票
    计算机配置\ Windows设置\安全设置\本地策略\用户权限分配\以...身份登录服务“。请注意,此更改将在下一次帐户所有者登录时生效。
    © www.soinside.com 2019 - 2024. All rights reserved.