Я знаю, как это сделать, но проблема в том, что все сертификаты, о которых идет речь, не установлены на моем локальном компьютере. У меня есть каталог управления версиями, в котором все они находятся, и мне нужно перебрать их с помощью PowerShell, чтобы найти, срок действия которых истек. Их слишком много, чтобы просто дважды щелкнуть по ним, чтобы просмотреть информацию "Действительно с", так как я могу получить это с помощью powershell?
Если они хранятся в файлах, вы можете создать экземпляр объекта 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"
}
}
Я играл с сертификатами и наткнулся на это, мне не удалось заставить работать приведенный выше код, но я изменил его, чтобы использовать 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"
}
}