Import-Module ActiveDirectory
$servers = Get-ADComputer -Filter 'operatingsystem -like "*server*" -and enabled -eq "true"' ` -Properties Name | Select-Object -Property Name
$stringtosearch = "*??ФИЛЬТР???*"
foreach ($server in $Servers) {
$servername = $server.Name
write-host ***************************************** $servername
$ro=[System.Security.Cryptography.X509Certificates.OpenFlags]"ReadOnly"
$lm=[System.Security.Cryptography.X509Certificates.StoreLocation]"LocalMachine"
$store=new-object System.Security.Cryptography.X509Certificates.X509Store("\\$servername\My",$lm)
$store.Open($ro)
$certificates=$store.Certificates
foreach ($cert in $certificates) {
write-host $cert.NotAfter $cert.Subject
if ($cert.Subject -like $stringtosearch) {
write-host ALERT!!!!!!!!!!!!!!!!!!!!!!!!!!
}
}
write-host ""
}
Clear-Host
$thumb = "0171be862068e579befe7a136e1f72a3bf7afc3a"
Write-Host "Ищу сертификат с отпечатком $thumb в Cert:\LocalMachine\My ..."
$cert = Get-ChildItem -Path Cert:\LocalMachine\My -ErrorAction SilentlyContinue |
Where-Object { $_.Thumbprint -eq $thumb }
if (-not $cert) {
Write-Host -ForegroundColor red "❌ В LocalMachine\My не найден. Пробую искать рекурсивно по всему LocalMachine ..."
$cert = Get-ChildItem -Path Cert:\LocalMachine -Recurse -ErrorAction SilentlyContinue |
Where-Object { $_.Thumbprint -eq $thumb }
}
if (-not $cert) {
Write-Host -ForegroundColor red "❌ Сертификат с отпечатком $thumb не найден ни в одном хранилище LocalMachine."
return
}
Write-Host " Сертификат найден:"
$cert | Format-List Thumbprint, Subject, FriendlyName, NotAfter
$chain = New-Object System.Security.Cryptography.X509Certificates.X509Chain
$chain.ChainPolicy.RevocationMode = [System.Security.Cryptography.X509Certificates.X509RevocationMode]::Online
$chain.ChainPolicy.RevocationFlag = [System.Security.Cryptography.X509Certificates.X509RevocationFlag]::EntireChain
$chain.ChainPolicy.UrlRetrievalTimeout = (New-TimeSpan -Seconds 10)
$chain.ChainPolicy.VerificationFlags = [System.Security.Cryptography.X509Certificates.X509VerificationFlags]::NoFlag
$result = $chain.Build($cert)
if ($result){
write-host -ForegroundColor green "Сертификат НЕ отозван."
}
else{
write-host -ForegroundColor red "Сертификат отозван."
}
$chain.ChainStatus