我有一个 .PXF 文件,用于强命名我们的几个 .NET 程序集。VS2010/MSBUILD 似乎希望它位于运行 VS2010/MSBUILD 的用户帐户的个人容器中。当使用交互式用户帐户工作时,这一切都很好,但是当尝试通过构建代理上的 TFS 2010 进行自动构建时,构建代理使用的帐户(默认情况下)是 NT-AUTHORITY/NetworkService。
由于我无法以 NetworkService 身份登录交互式会话,因此我无法仅从交互式会话 shell 安装 PFX。
那么谁能告诉我如何在 NetworkService 帐户的个人证书存储中安装 PFX 证书?
答案1
您需要打开网络服务证书存储,并添加它。
开店方式:
- 从开始 | 运行:
mmc.exe
- 文件 | 添加/删除管理单元并选择证书,然后添加。
- 当提示您输入帐户类型时,请选择服务帐户
- 根据需要选择本地/远程计算机
- 选择作为网络服务运行的任何服务(“远程过程调用(RPC)”默认作为网络服务运行)
- 完成向导并单击“确定”关闭添加/删除对话框。
- 在适用的类别上单击鼠标右键并选择添加任务以查找导入等操作。
答案2
上述可接受的答案对我不起作用。但使用 Microsoft/sysinternals 的 psexec 实用程序对我有用。
下载 psexec。https://docs.microsoft.com/en-us/sysinternals/downloads/pstools
使用 psexec 打开一个以网络服务形式运行的新控制台:
.\PsExec64.exe -i -u “nt 权限\网络服务” powershell
运行 mmc
添加证书管理单元并使用“我的用户帐户”中的证书
用此帐户的个人证书做任何你想做的事情
现在,所有个人证书对于网络服务来说都应该是可见的。这与我在作为网络服务运行的服务上执行接受的答案时获得的证书有所不同。
这至少对于我运行工具 mage.exe 来说是必要的,因为它只使用个人证书,所以很难在 NETWORK SERVICE 帐户下进行代码签名。