您可以使用certmgr.msc中的嚮導將證書安裝到證書存儲中(右鍵單擊安裝)?有誰知道如何通過使用嚮導/代碼(前綴)/腳本「乾淨地」刪除所有證書?如何從商店清除證書
我希望能夠從LocalMachine和/或CurrentUser Store中刪除所有(我以前安裝的),而不會留下任何殘留物。
謝謝
您可以使用certmgr.msc中的嚮導將證書安裝到證書存儲中(右鍵單擊安裝)?有誰知道如何通過使用嚮導/代碼(前綴)/腳本「乾淨地」刪除所有證書?如何從商店清除證書
我希望能夠從LocalMachine和/或CurrentUser Store中刪除所有(我以前安裝的),而不會留下任何殘留物。
謝謝
你可以嘗試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);
編輯完
希望,這會有所幫助。
您可以嘗試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
舊的線程,但我只是按照下面的鏈接帖子使用贏7,它很好地工作...使用管理控制檯。
來源: http://windowssecrets.com/top-story/certificate-cleanup-for-most-personal-computers/
雖然此鏈接可能會回答問題,但最好在此包含答案的重要部分,並提供供參考的鏈接。如果鏈接頁面更改,則僅鏈接答案可能會失效。 –
將它確保它會從機器中取出所有的證書,包括thoese連鎖? – daehaai
好的,另外還有另外一個問題。使用嚮導安裝時,它具有「根據類型自動存儲證書」選項。你將如何在代碼中的corrosponding store中安裝cert? – daehaai
@activebiz:否,Remove()函數不會刪除證書鏈中的證書。我已經用示例更新了我的答案,以顯示如何刪除鏈中的證書。 – Hans