2011-10-03 22 views
12

Puede instalar el certificado en el almacén de certificados usando el Asistente en certmgr.msc (Instalación con el botón derecho). ¿Alguien sabe cómo eliminar "limpiamente" todo el certificado usando el asistente/Código (pref.)/Script?Cómo eliminar el certificado de Store cleanly

Quiero ser capaz de eliminar todo (que he instalado anteriormente) de la LocalMachine y/o CurrentUser Store sin dejar ningún residuo.

Gracias

Respuesta

12

puede probar con el X509Store y releated clases de .NET Framework para eliminar un certificado del almacén de certificados. El ejemplo de código borra un certificado del actual del usuario Mi tienda:

// Use other store locations if your certificate is not in the current user store. 
X509Store store = new X509Store(StoreName.My, StoreLocation.CurrentUser); 
store.Open(OpenFlags.ReadWrite | OpenFlags.IncludeArchived); 

// You could also use a more specific find type such as X509FindType.FindByThumbprint 
X509Certificate2Collection col = store.Certificates.Find(X509FindType.FindBySubjectName, "yoursubjectname", false); 

foreach (var cert in col) 
{ 
    Console.Out.WriteLine(cert.SubjectName.Name); 

    // Remove the certificate 
    store.Remove(cert);   
} 
store.Close(); 

COMENZAR EDIT: Sobre la base de los comentarios en la sección de comentarios que he actualizado mi respuesta con un ejemplo de código que muestra cómo eliminar una certificado y todos los certificados de la cadena:

X509Certificate2Collection col = store.Certificates.Find(X509FindType.FindBySubjectName, "yoursubjectname", false); 

    X509Chain ch = new X509Chain(); 
    ch.Build(col[0]); 
    X509Certificate2Collection allCertsInChain = new X509Certificate2Collection(); 

    foreach (X509ChainElement el in ch.ChainElements) 
    { 
    allCertsInChain.Add(el.Certificate); 
    } 

    store.RemoveRange(allCertsInChain); 

FIN EDITAR

esperanza, esto ayuda.

+1

va a hacer seguro de que eliminará todos los certificados de la máquina incluyendo thoese en cadena? – daehaai

+0

bien, aquí hay otra pregunta adicional. Cuando instala utilizando el asistente, tiene la opción "Almacenar automáticamente el certificado según el tipo". ¿Cómo instalaría cert en la tienda corrosponding en el código con esto? – daehaai

+0

@activebiz: No, la función Remove() no elimina los certificados en la cadena de certificados. He actualizado mi respuesta con una muestra para mostrar cómo eliminar los certificados en la cadena. – Hans

1

Puede probar certmgr.exe. El siguiente comando elimina un certificado con un cn de 'commoncertname' del usuario local personal \ certificates store.

.\certmgr.exe -del -n commoncertname -c -s -r currentuser my 

Puede encontrar más información sobre Certmgr.exe aquí: http://msdn.microsoft.com/en-us/library/windows/desktop/aa376553%28v=vs.85%29.aspx

ACTUALIZACIÓN

Duh! ¡No puedo creer que no haya intentado esto! Puede eliminar los certificados con lo siguiente:

Get-ChildItem Cert:\CurrentUser\My | Where-Object {$_.Subject -eq 'CN=certCN'} | Remove-Item 
4

Tema viejo, pero acabo de seguir la publicación vinculada a continuación usando Win 7 y funcionó bien ... Utiliza la consola de gestión.

  1. Inicio -> Ejecutar -> mmc.exe
  2. Haga clic en Archivo -> "Agregar/quitar complemento"
  3. Seleccione Certificados, haga clic en Agregar
  4. Seleccione "Cuenta de equipo", haga clic en Siguiente.
  5. Seleccione "Equipo local", haga clic en Finalizar
  6. Haga clic en OK, que debe traer de vuelta a la MMC
  7. En el panel izquierdo, expanda Certificados (equipo local)
  8. haz lo que quieras con los certificados enumerados. ..

Fuente: http://windowssecrets.com/top-story/certificate-cleanup-for-most-personal-computers/

+2

Si bien este enlace puede responder a la pregunta, es mejor incluir las partes esenciales de la respuesta aquí y proporcionar el enlace de referencia. Las respuestas de solo enlace pueden dejar de ser válidas si la página vinculada cambia. –

Cuestiones relacionadas