Você poderia abrir o repositório de certificados :
$CertStore = New-Object System.Security.Cryptography.X509Certificates.X509Store("\computername\MY","LocalMachine")
$CertStore.Open("ReadOnly")
$CertStore.Certificate # this property contains all the certificates.
Você pode abrir o armazenamento pessoal da máquina local em cada computador que deseja auditar, enumerar e retornar informações sobre os certificados não emitidos pela nova CA
$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
}
}
}
}
Agora você pode ver quais computadores / servidores ainda têm certificados das antigas CAs instaladas:
$oldCerts |Group-Object -Property Computer