Найти истечение срока действия файла сертификата с помощью PowerShell

Я знаю, как это сделать, но проблема в том, что все сертификаты, о которых идет речь, не установлены на моем локальном компьютере. У меня есть каталог управления версиями, в котором все они находятся, и мне нужно перебрать их с помощью PowerShell, чтобы найти, срок действия которых истек. Их слишком много, чтобы просто дважды щелкнуть по ним, чтобы просмотреть информацию "Действительно с", так как я могу получить это с помощью powershell?

1
задан 25 November 2015 в 18:19
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"
    }
}
0
ответ дан 3 December 2019 в 20:45

Я играл с сертификатами и наткнулся на это, мне не удалось заставить работать приведенный выше код, но я изменил его, чтобы использовать 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
ответ дан 3 December 2019 в 20:45

Теги

Похожие вопросы