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!
remove-item -whatif
??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
?Respuestas:
Mi respuesta es para "¿Hay una manera más inteligente / simple de hacer esto?" parte de tu pregunta Este script tuvo éxito al eliminar un certificado de go daddy para mí
-WhatIf
Agregué un código para que este código no fuera peligroso para el folx "copiar \ pegar \ ejecutar". Ahora, necesitará adaptar el$Path
,Where-Object
y agregar la$certname
variable, pero la plantilla anterior debería ayudarlo.fuente
Aunque no he podido resolver el problema con el script, pude encontrar una forma 'más inteligente / simple' para lograr mi objetivo .
De la Autoridad de Certificación:
Certificate Templates
y seleccionaManage
Reenroll All Certificate Holders
Esto aumentará el número de versión de la plantilla y los sistemas de red con inscripción automática eliminarán el certificado anterior y se inscribirán con el nuevo certificado.
Aunque esto requiere una inscripción automática para la plantilla específica con la que estoy trabajando, una solución al script publicado sería una respuesta preferible.
fuente