如何在使用Certreq索取企业CA的证书时,如何抑制弹出窗口



我正在尝试从与我们的企业CA服务器相同的机器中请求证书。一切都很好,但是我距离我的脚本的用户交互零一步。

我基本上修改了以下脚本以包含参数并删除了SAN选项:

https://www.powershellgallery.com/packages/request-certificate/1.5.0

以下命令从.inf文件创建新请求后,我获得了一个弹出窗口:

Invoke-Expression -Command "certreq -new `"$inf`" `"$req`""

Machine context template conflicts with user context.

当我单击"确定"时,一切正常。创建新的请求,其余的脚本正常工作。但是我找不到单击"确定"的方法。以编程方式。

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)

我几乎被困在这里。任何帮助将不胜感激!

问题是模板是善良的Computer而不是User。这意味着应在计算机帐户的上下文中创建请求。这意味着您必须将脚本运行为SYSTEMAdministrator或允许识别为计算机的任何其他帐户。

回答您的问题应更改request-certificate.ps1中的参数。查看以生成请求的INF文件,并检查 MachineKeySet param。默认值是错误的,并提示:

Machine context template conflicts with user context.

Appers当模板是善良的机器时。当您将其切换到TRUE ALE使用用户模板时,有相反的提示:

User context template conflicts with machine context.

对于来这里的人抑制提示以选择CA的人,将-config <FQDN_OF_CA><LOGICAL_NAME_OF_CA>添加到您的CertReq命令中。

最新更新