Ich habe kürzlich meine PKI neu erstellt und möchte die Zertifikate löschen, die für alle Clientcomputer in meinem Netzwerk ausgestellt wurden. Klingt nach einem Job für Powershell! Also habe ich dieses Skript geschrieben, um es vom Gruppenrichtlinienobjekt zu verteilen, von SysVol aus auszuführen und beim Start auf Client-Computern auszulösen:
set-location cert:\LocalMachine\My
$certname = $env:COMPUTERNAME + ".domain.com"
get-item * | %{
if($_.issuer -like "CN=IssuingCA*" -and $_.DnsNameList.unicode -like $certname) { remove-item .\$_.Thumbprint -Force }
}
An einer Eingabeaufforderung mit erhöhten Rechten:
- Bei Ran gibt das Skript keine Ausgabe aus (einfach eine neue Terminalzeile). Es werden keine Fehler zurückgegeben und das Zertifikat wird nicht gelöscht.
- Wenn das Argument
-WhatIf
demRemove-Item
Befehl im Skript hinzugefügt wird, treten erneut keine Fehler auf und das Zertifikat wird nicht gelöscht. - Wenn Remove-Item. \ CERTIFICATE-THUMBPRINT -Force ausgeführt wird, wird das Zertifikat gelöscht.
Ist dies ein Berechtigungsproblem? Gibt es eine intelligentere / einfachere Möglichkeit, dies zu tun?
Vielen Dank!
write-host
, um etwas auf dem Bildschirm abzulegen, wenn die Bedingung erfüllt ist. Ich frage mich, ob das Skript als falsch ausgewertet wird (würde erklären, dass kein Fehler und keine Aktion vorliegt).
Remove-Item -Force
?
remove-item -whatif
??