我试图从与我们的企业CA服务器位于同一域中的计算机请求一个证书。一切都很好,但我离让我的脚本实现零用户交互只有一步之遥。
我基本上修改了以下脚本,使其不包含任何参数,并删除了SAN选项:
https://gallery.technet.microsoft.com/scriptcenter/Request-certificates-from-b6a07151
在以下命令从.inf文件创建新请求后,我将得到一个弹出窗口:
Invoke-Expression -Command "certreq -new `"$inf`" `"$req`""Machine context template conflicts with user context.
当我单击OK时,一切都很好。创建一个新请求,脚本的其余部分工作正常。但是,我无法找到一种方法来以编程方式单击"OK“。
certreq工具确实有-q (用于抑制交互提示)和-f (强制/绕开事物),但这些功能都没有。
使用certreq -new -q $inf $req或-q和-f的结果如下:
Active Directory Enrollment Policy
{<GUID>}
ldap:
Machine context template conflicts with user context.
Certificate Request Processor: The specified role was not configured for the application 0x8004e00c (-2147164148 CONTEXT_E_ROLENOTFOUND)我被困在这里了。任何帮助都将不胜感激!
发布于 2019-05-07 07:34:31
问题是模板是Computer,而不是User。这意味着请求应该在计算机帐户的上下文中创建。这意味着您必须以SYSTEM、Administrator或任何允许标识为计算机的其他帐户的身份运行脚本。
发布于 2021-01-15 11:03:13
你问题的答案应该是在请求中更改param -Certificate.ps1。查看inf文件以生成请求,并检查MachineKeySet param。默认值为false并提示:
Machine context template conflicts with user context.当模板是类机器时使用。当您切换到真正的ale使用用户模板时,有相反的提示符:
User context template conflicts with machine context.发布于 2022-05-23 08:34:14
对于来此阻止选择CA提示符的人员,请将-config <FQDN_OF_CA>\<LOGICAL_NAME_OF_CA>添加到CertReq命令中。
https://stackoverflow.com/questions/56014035
复制相似问题