Назад | Перейти на главную страницу

Кто-нибудь знает способ найти все сертификаты, которые не были зарегистрированы автоматически?

Я нахожусь в процессе переноса роли службы сертификации Active Directory на новый сервер 2012 года. Новый сервер будет выдавать новые сертификаты, и мне нужно найти все сертификаты, которые не были выданы с помощью автоматической регистрации, чтобы я мог вручную выпустить новые.

Кто-нибудь знает, как лучше сделать это с помощью Powershell? Я использую модуль PSPKI.

Ты мог открыть хранилище сертификатов:

$CertStore = New-Object System.Security.Cryptography.X509Certificates.X509Store("\\computername\MY","LocalMachine")
$CertStore.Open("ReadOnly")
$CertStore.Certificate # this property contains all the certificates.

Вы можете открыть личный магазин на локальном компьютере на каждом компьютере, который хотите проверить, перечислить и вернуть информацию о сертификатах. не выданный вашим новым ЦС

$Computers = "adbertram01","adbertram02","adbertram03"
$oldCerts = @() # This will contain all the interesting certificates

foreach($Computer in $Computers) 
{
    $CertStore = New-Object System.Security.Cryptography.X509Certificates.X509Store("\\$Computer\MY","LocalMachine")
    $CertStore.Open("ReadOnly")

    if(!$CertStore.Certificates.Count -gt 0)
    {
        continue # No certificates found, move along
    }

    foreach($Cert in $CertStore.Certificates)
    {
        if($Cert.Issuer -notmatch "MyNew2012CA")
        {
            $oldCerts += New-Object PSObject -Property @{
                    Computer   = $Computer
                    Subject    = $Cert.Subject
                    Issuer     = $Cert.Issuer
                    Thumbprint = $c.Thumbprint
                }
        }
    }
}

Теперь вы можете увидеть, на каких компьютерах / серверах все еще установлены сертификаты от старого центра сертификации:

$oldCerts |Group-Object -Property Computer