I originally wrote this as a monitor for SolarWinds. I'm posting it here as it could also be used to do a foreach against an OU, csv, etc. Basically, search through the computer personal certificate store and return the certs that expire in X days.
########################
Import-Module WebAdministration
$Certificates = dir Cert:\localmachine\my
$today = get-date
$expirationcounter = 0
foreach ($cert in $Certificates)
{
$thumbprint = $Cert.Thumbprint;
$certdetails = Get-ChildItem Cert:\LocalMachine\my\$thumbprint | Select NotAfter,Subject,Issuer;
if($certdetails.notafter -lt $today.AddDays(60))
{
$expiresin = $certdetails.NotAfter - $today
Write-Host "Statistic:" $expiresin.days
Write-Host 'Message: ' $certdetails.Subject
$expirationcounter++
}
}
if($expirationcounter -eq 0)
{
Write-Host 'Statistic: ' 0
Write-Host 'Message: No Certificates Found'
}
########################
No comments:
Post a Comment