gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-03 11:09:34 24 4
gpt4 key购买 nike

背景

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

我有一个新的要求来签署编译的可执行文件。我已将带有私钥的证书导入到 Windows 证书存储中的 Current User\Personal key 存储中。

问题

如果我作为 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 list 签名(VS2017 项目中的一个选项)。
  • 启动编译作业时,该作业使用登录类型 2(交互式登录)作为 condor_usr[1|2] 登录。
    https://ss64.com/nt/syntax-logon-types.html

  • logon type

    我尝试过的事情

    除非另有说明,否则这些操作无效并已恢复。
  • 将 condor_usr 帐户添加到 Cryptographic Operators 组。
  • 将带有私钥的证书导入本地计算机\个人 key 存储。
  • 授予网络服务帐户对证书/私钥的完全控制权。
    https://community.dynamics.com/nav/b/technicaltipsandtricksfordynamicsnav/posts/how-to-grant-access-to-the-certificate-s-private-key-to-the-service-account-for-microsoft-dynamics-nav-server
  • 使用 PsExec -h make.bat获取账户的提升 token 。
    https://docs.microsoft.com/en-us/sysinternals/downloads/psexec
  • 我认为用户帐户控制 (UAC) 可能会阻止系统帐户和/或 condor_usr 帐户访问证书存储区(或证书存储区中的私钥),但 UAC 已在 Win7 VM 上禁用。
  • 我将原始的 .pfx 证书文件放在 VS2017 解决方案中,并以它而不是 keystore 中的证书为目标。这没有任何效果,这让我相信问题是某种签名权限,而不是(或可能除了)围绕实际证书存储的纯粹权限。
  • 我尝试在通过远程桌面登录时开始工作,然后在工作到达签名部分之前退出远程桌面 session (实际注销,而不是断开连接)。签名失败。
  • 最佳答案

    确保该过程中涉及的所有帐户都具有“作为服务登录”权限,方法是确保它们存在于本地策略“计算机配置\Windows 设置\安全设置\本地策略\用户权限分配\作为服务登录”中。请注意,此更改将在帐户所有者下次登录时生效。

    尝试直接以“condor_usr1”而不是“本地系统”帐户运行 HTCondor 服务。

    关于Windows 服务用户帐户无法访问证书存储,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58081347/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com