$certDirectory="Path where are .cer,.crt,.der etc" $DaysToExpiration=17 $expirationDate = (Get-Date).AddDays($DaysToExpiration) $certList = Get-ChildItem $certDirectory foreach ($cert in $certList) { $certPrint = New-Object System.Security.Cryptography.X509Certificates.X509Certificate2 $certPrint.Import($cert.FullName) [array]$certNotExspire += $certPrint [array]$certExspire += $certPrint | Where {($certPrint.NotAfter -lt $expirationDate)} } if ($certExspire.Count -gt 0) { Write-Host "---ERROR---" Write-Host "Certificate Expiring in less than $DaysToExpiration days" $certExspire | fl Subject,Issuer,NotAfter,Serialumber,Thumbprint }else{ Write-Host "---OK---" Write-Host "No Certificates expiring within $DaysToExpiration days" $certNotExspire | fl Subject,Issuer,NotAfter,Serialumber,Thumbprint }