【发布时间】:2019-08-09 17:57:24
【问题描述】:
我们使用用户证书对各种服务进行身份验证,但证书会在一年后过期,除非手动更新。我正在尝试创建一个登录脚本,该脚本将检测证书是否即将过期并主动更新它。
我们目前使用的手动过程是让用户登录、启动 certmgr.msc、展开个人 > 证书、右键单击证书、所有任务 > 使用新密钥续订证书(如果已经过期,则请求新证书)。
cd cert:\
$certs = Get-ChildItem -Recurse -ExpiringInDays 180 | Where subject -Like "*(foo)*"
if ($certs)
{
ForEach ($cert in $certs)
{
certreq -enroll -user -q -policyserver * $cert.thumbprint renew
}
}
我成功运行过一次,但运行脚本时出现以下错误:
证书请求处理器:参数不正确。 0x80070057 (WIN32: 87 ERROR_INVALID_PARAMATER)
如果输入垃圾数据或通过序列号或指纹识别证书,我会得到相同的结果。该脚本能够可靠地找到我想要的证书,但 certreq 命令失败。
非常感谢任何建议。
【问题讨论】:
标签: powershell windows-10 certificate