Recentemente ho ricostruito la mia PKI e vorrei eliminare i certificati che erano stati emessi su tutte le macchine client attraverso la mia rete. Sembra un lavoro per Powershell! Quindi ho scritto questo script per essere distribuito dall'oggetto Criteri di gruppo, eseguito da SysVol e attivato su macchine client all'avvio:
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 }
}
Da un prompt dei comandi elevato:
- Quando è attivo, lo script non fornisce alcun output (semplicemente una nuova linea terminale). Non restituisce errori e il certificato non viene eliminato.
- Quando l'argomento
-WhatIf
viene aggiunto alRemove-Item
comando nello script, di nuovo nessun errore e il certificato non viene eliminato. - Quando Remove-Item. \ CERTIFICATE-THUMBPRINT -Force viene eseguito, il certificato viene eliminato.
Si tratta di un problema di autorizzazioni? Esiste un modo più intelligente / semplice per farlo?
Grazie!
write-host
per scaricare qualcosa sullo schermo se il condizionale è vero. Mi chiedo se lo script stia valutando come falso (spiegherebbe l'assenza di errori e nessuna azione).
Remove-Item -Force
?
remove-item -whatif
??