使用 powershell 查找证书文件过期时间

使用 powershell 查找证书文件过期时间

我知道如何正常执行此操作,但问题是所有相关证书都没有安装在我的本地计算机上。我有一个源代码控制目录,里面存放着所有证书,我需要使用 powershell 遍历它们以查找哪些证书已过期。证书太多了,无法双击查看“有效期”信息,那么如何使用 powershell 获取这些信息呢?

答案1

我在玩证书时遇到了这个问题,我无法让上述代码工作,但我对其进行了修改以使用 GCI 和过滤器并且它工作了,谢谢!

gci C:\Users\myname\Documents\OT -Filter *.cer | 
%{
    $cert = New-Object Security.Cryptography.X509Certificates.X509Certificate2 $_.FullName
    if ($cert.NotAfter -lt (Get-Date)) {
        Write-Warning "$_ is expired"
    }
}

答案2

如果它们存储在文件中,那么您可以X509Certificate2从文件实例化一个对象,然后像通常一样检查到期日期:

dir c:\certs -Include *.cer, *.crt | %{
    $cert = New-Object Security.Cryptography.X509Certificates.X509Certificate2 $_.FullName
    if ($cert.NotAfter -lt (Get-Date)) {
        Write-Warning "$_ is expired"
    }
}

相关内容