Recientemente reconstruí mi PKI y me gustaría eliminar los certificados que se emitieron a todas las máquinas cliente en mi red. ¡Suena como un trabajo para Powershell! Así que escribí este script para que GPO lo distribuyera, ejecuté desde SysVol y lo activé en las máquinas cliente al inicio:
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 }
}
Desde un símbolo del sistema elevado:
- Cuando Ran, el script no da salida (simplemente una nueva línea de terminal). No devuelve errores y el Certificado no se elimina.
- Cuando el argumento
-WhatIf
se agrega alRemove-Item
comando en el script, nuevamente no hay errores y el Certificado no se elimina. - Cuando se ejecuta Remove-Item. \ CERTIFICATE-THUMBPRINT -Force, se elimina el certificado.
¿Es esto un problema de permisos? ¿Hay una manera más inteligente / simple de hacer esto?
¡Gracias!
write-host
para volcar algo en la pantalla si el condicional es verdadero. Me pregunto si el script está evaluando como falso (explicaría el error y la falta de acción).
Remove-Item -Force
?
remove-item -whatif
??