The deletion of certificates, based on the certificate templates being superseded by other certificate templates, from user’s AD store worked in XP/W2k3 as part of the autoenrollment.
Repro Steps (Vista and later):
1. Configure user autoenrollment policy (make sure that policy is enabled and both check boxes are check in the autoenrollement configuration window.
2. Duplicate User certificate template (name it for example TestTemplate1), make sure that the certificate publishing in AD is activated and assign to the test user read, enroll and autoenroll permissions on the template
3. Publish the TestTemplate1 template on the CA
4. Logon as test user and make sure that the user get the certificate based on the template TestTemplate1 over autoenrollment.
5. Configure new certificate template by duplicating TestTemplate1 (name it for example TestTemplate2), set in the superseeded tab that TestTemplate2 superseeds the TestTemplate1, make sure that the certificate publishing in AD is activated and double check that test user has Read, Enroll and Autoenroll permissions set for TestTemplate2.
6. Publish the TestTemplate2 template on the CA
7. Logon as test user and check that the user gets certificate based on the new template TestTemplate2 over autoenrollment.
8. On the DC, open dsa.msc, find the test user, open the properties and there will be two certificates published in AD, one based on TestTemplate1 and the other based on TestTemplate2 (on XP/W2k3 there would be only one, since the certificate based on the template being superseded, TestTemplate1, would have been deleted)
For a V1 template: certutil –delstore –user ldap: InternalTemplateName
For a V2 or later template: certutil –delstore –user ldap: TemplateOID
InternalTemplateName is the non-localized template name (the CN of the template object in AD).
Above command will delete all certs from DS store, issued using a specific template.