Ereignis auf Zertifikat erneuert, ersetzt

2

Ich versuche, einen Task-Zeitplan auszulösen, der ein Powershell-Skript startet, wenn ein neues Zertifikat in das System aufgenommen wird Local Computer\Personal\Certificates Geschäft.

Zu Testzwecken sind die Zertifikate selbst mit Hilfe von openssl erstellt.

Da die Zertifikate generiert werden, pkcs12 Lösen Sie das in der Ereignisanzeige gefundene Ereignis nicht aus Microsoft-Windows-CertificateServicesClient-Lifecycle-System/Operational.

Die pkcs12-Zertifikate tun dies jedoch.

Irgendwelche Ideen, wie man Zertifikate erhält, die keine pkcs12-Zertifikate sind?

t0mm13b
quelle

Antworten:

0

Wie wäre es mit einem Skript, das regelmäßig aufgerufen wird und die Fingerabdrücke aller vorhandenen Zertifikate in eine Datei schreibt? Wenn ein neuer Fingerabdruck gefunden wird, der nicht in der Datei enthalten ist, kann er bei jeder Ausführung das auslösen, was der Rest Ihres Skripts tun muss, und die Datei aktualisieren.

$file = ".\certsSeenBefore.txt"
# make sure the above file exists
If (-not (Test-Path $file)) { New-Item $file -ItemType File }

# for each cert, see if the thumbprint is in the file
Get-ChildItem Cert:\LocalMachine\My\ | foreach {
    if ((Get-Content($file)) -contains $_.Thumbprint)
    {
        # all good
    }
    else
    {
        Write-Host "Ah Ha! THere's a new cert $_.Subject"

        # Add the thumbprint to the file so it doesn't get triggered again.
        Add-Content $file -Value $_.Thumbprint

        # call whatever it is you need to do

        # ....

    }
}

Entschuldigung, ich weiß, dass dies keine vollständige Antwort ist, aber nicht genug zu essen, um etwas dazu zu sagen.

Stu
quelle