使用PowerShell查找证书文件到期

我知道如何做到这一点,但问题是所有有问题的证书没有安装在我的本地机器上。 我有一个源代码pipe理目录,他们都坐在那里,我需要遍历他们与PowerShell,以find哪些已过期。 有太多的只是双击查看“有效”的信息,所以我怎么能得到使用PowerShell的?

如果它们存储在文件中,则可以从文件实例化X509Certificate2对象,然后像X509Certificate2检查过期date:

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

我正在玩证书,碰到这个,我不能得到上面的代码工作,但我修改它使用GCI和filter,它的工作,谢谢!

 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" } }