J'ai récemment reconstruit mon PKI et je voudrais supprimer les certificats qui ont été émis pour toutes les machines clientes de mon réseau. Cela ressemble à un travail pour Powershell! J'ai donc écrit ce script pour être distribué par GPO, exécuté à partir de SysVol et déclenché sur les machines clientes au démarrage:
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 }
}
À partir d'une invite de commande élevée:
- Lorsque Ran, le script ne donne aucune sortie (simplement une nouvelle ligne de terminal). Il ne renvoie aucune erreur et le certificat n'est pas supprimé.
- Lorsque l'argument
-WhatIf
est ajouté à laRemove-Item
commande dans le script, à nouveau aucune erreur et le certificat n'est pas supprimé. - Lorsque Remove-Item. \ CERTIFICATE-THUMBPRINT -Force est exécuté, le certificat est supprimé.
Est-ce un problème d'autorisations? Existe-t-il un moyen plus intelligent / plus simple de procéder?
Merci!
write-host
pour vider quelque chose à l'écran si le conditionnel est vrai. Je me demande si le script est évalué comme faux (expliquerait l'absence d'erreur et aucune action).
Remove-Item -Force
?
remove-item -whatif
??