【问题标题】:Creating a PowerShell script to automatically renew user certificates创建 PowerShell 脚本以自动更新用户证书
【发布时间】: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


    【解决方案1】:

    -cert 参数丢失

    Get-ChildItem cert:\ -Recurse -ExpiringInDays 180 | Where subject -Like "*(foo)*" | % {
       certreq -enroll -user -q -policyserver * -cert $($_.thumbprint) renew
    }
    

    【讨论】:

      猜你喜欢
      • 2018-04-07
      • 2022-11-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-06-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多