我目前正在编写 Powershell 脚本,但遇到了一些障碍。基本上,该脚本使用 certreq.exe 和 certutil.exe 从我们的 CA 请求、批准和检索新证书。
到目前为止,我的请求和批准工作正常,但当我尝试检索新批准的证书时,我收到一个指向 CA 的“目录名称无效”消息。我对所有其他命令使用完全相同的 -config 字符串,但它在 certreq.exe -retrieve 调用中失败。如果我删除它,它会提示我从列表中选择正确的 CA,但列表中只有一个。我非常想避免这种情况,因为我正在尝试自动续订 450 多个证书,而不得不坐在这里为每个证书单击一个按钮会在某种程度上违背整个目的。
有人有主意吗?
谢谢。
更多信息:
Powershell 脚本流程如下:
- 创建 .inf 文件
- 使用生成的 inf 文件运行 certreq.exe -new 来创建 .req
- 使用生成的 .req 运行 certreq.exe -submit
- 从 -submit 命令捕获 RequestID,并将其传递给 certutil.exe -Resubmit 以批准它
- 使用捕获的 RequestID 运行 certreq -retrieve,失败,提示找不到在 certreq -submit 和 certutil -resubmit 命令中使用的 CA。
答案1
这在 PowerShell 脚本中对我有用:
invoke-expression -command "certreq -config `"$OnlineCA`" -Retrieve $RequestId `"$CertificateFileName`" "
答案2
尝试使用-config
参数。请查看 TechNet 页面以获取有关certreq.exe
和中包含的选项的更多详细信息certutil.exe
。
https://technet.microsoft.com/en-us/library/dn296456.aspx
我知道我回答这个问题已经太晚了,但希望这能对别人有所帮助。