2011-10-03 74 views
12

您可以使用certmgr.msc中的嚮導將證書安裝到證書存儲中(右鍵單擊安裝)?有誰知道如何通過使用嚮導/代碼(前綴)/腳本「乾淨地」刪除所有證書?如何從商店清除證書

我希望能夠從LocalMachine和/或CurrentUser Store中刪除所有(我以前安裝的),而不會留下任何殘留物。

謝謝

回答

12

你可以嘗試X509Store和相關型號班在.NET Framework來刪除證書存儲中的證書。下面的代碼示例將刪除當前用戶的我的存儲中的證書:

// 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(); 

BEGIN編輯: 基於在評論部分我已經更新了我的答案有一個代碼示例展示瞭如何刪除評論證書鏈中的所有證書:

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); 

編輯完

希望,這會有所幫助。

+1

將它確保它會從機器中取出所有的證書,包括thoese連鎖? – daehaai

+0

好的,另外還有另外一個問題。使用嚮導安裝時,它具有「根據類型自動存儲證書」選項。你將如何在代碼中的corrosponding store中安裝cert? – daehaai

+0

@activebiz:否,Remove()函數不會刪除證書鏈中的證書。我已經用示例更新了我的答案,以顯示如何刪除鏈中的證書。 – Hans

1

您可以嘗試certmgr.exe。以下命令從本地用戶personal \ certificates存儲區中刪除一個帶有「commoncertname」cn的證書。

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

你可以在這裏找到有關certmgr.exe更多信息:http://msdn.microsoft.com/en-us/library/windows/desktop/aa376553%28v=vs.85%29.aspx

UPDATE

咄!我不敢相信我沒有嘗試過!你可以用下面的刪除證書:

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

舊的線程,但我只是按照下面的鏈接帖子使用贏7,它很好地工作...使用管理控制檯。

  1. 開始 - >運行 - > MMC.EXE
  2. 點擊文件 - > 「添加/刪除管理單元」
  3. 選擇證書,單擊添加
  4. 選擇 「計算機帳戶」,然後單擊下一步。
  5. 選擇「本地計算機」,然後單擊Finish
  6. 單擊確定,這將促使你回到MMC
  7. 在左窗格中展開證書(本地計算機)
  8. 做你會與上市證書。 ..

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

+2

雖然此鏈接可能會回答問題,但最好在此包含答案的重要部分,並提供供參考的鏈接。如果鏈接頁面更改,則僅鏈接答案可能會失效。 –