2011-10-03 12 views
12

आप certmgr.msc (राइट क्लिक इंस्टॉल) में विज़ार्ड का उपयोग कर प्रमाणपत्र स्टोर में प्रमाणपत्र स्थापित कर सकते हैं? क्या कोई जानता है कि विज़ार्ड/कोड (pref।)/स्क्रिप्ट का उपयोग करके सभी प्रमाणपत्र को "साफ" कैसे हटाएं?स्टोर से सर्टिफिकेट को कैसे हटाएं

मैं किसी भी अवशेष को छोड़े बिना स्थानीयमाचिन और/या CurrentUser स्टोर से सब कुछ (जिसे मैंने पहले स्थापित किया है) को हटाने में सक्षम होना चाहता हूं।

धन्यवाद

उत्तर

12

आप प्रमाणपत्र संग्रह से प्रमाणपत्र को हटाने के लिए नेट फ्रेमवर्क में X509Store और releated कक्षाओं की कोशिश कर सकते। निम्नलिखित कोड उदाहरण वर्तमान उपयोगकर्ता के मेरे दुकान से एक प्रमाण पत्र को हटाता है:

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

शुरू संपादित करें: टिप्पणियाँ टिप्पणी अनुभाग में मैं एक कोड नमूना दिखा एक को निकालने का तरीका साथ मेरा उत्तर को नवीनीकृत किया है के आधार पर प्रमाण पत्र और श्रृंखला में सभी प्रमाण पत्र:

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 स्टोर में प्रमाण कैसे स्थापित करेंगे? – daehaai

+0

@activebiz: नहीं, निकालें() फ़ंक्शन प्रमाणपत्र श्रृंखला में प्रमाण पत्र नहीं हटाता है। श्रृंखला में प्रमाणपत्रों को हटाने के तरीके को दिखाने के लिए मैंने नमूना के साथ अपना जवाब अपडेट कर दिया है। – Hans

1

आप certmgr.exe को आजमा सकते हैं। निम्न आदेश स्थानीय उपयोगकर्ता व्यक्तिगत \ प्रमाणपत्र स्टोर से 'commoncertname' के सीएन के साथ प्रमाण पत्र हटा देता है।

.\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

अद्यतन

ओह! मुझे विश्वास नहीं है कि मैंने कोशिश नहीं की! आप नीचे दिए गए प्रमाण पत्र के साथ निकाल सकते हैं:

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

पुराना धागा, लेकिन मैंने विन 7 का उपयोग करके नीचे दिए गए लिंक का पालन किया और यह अच्छी तरह से काम किया ... प्रबंधन कंसोल का उपयोग करता है।

  1. प्रारंभ -> भागो -> mmc.exe
  2. क्लिक करें फ़ाइल -> "जोड़ें/निकालें स्नैप में"
  3. प्रमाण पत्र का चयन करें,
  4. चुनें "कंप्यूटर खाता" जोड़ें क्लिक करें, अगला क्लिक करें।
  5. "स्थानीय कंप्यूटर" का चयन करें, क्लिक करें समाप्त
  6. ठीक क्लिक करें, जो आपको, एमएमसी
  7. बाएं पैनल में वापस लाने चाहिए प्रमाण पत्र (स्थानीय कंप्यूटर) का विस्तार
  8. सूचीबद्ध प्रमाण पत्र के साथ क्या आप करेंगे मत करो। ..

स्रोत: http://windowssecrets.com/top-story/certificate-cleanup-for-most-personal-computers/

+2

हालांकि यह लिंक प्रश्न का उत्तर दे सकता है, लेकिन यहां उत्तर के आवश्यक हिस्सों को शामिल करना बेहतर है और संदर्भ के लिए लिंक प्रदान करना बेहतर है। लिंक किए गए पृष्ठ में परिवर्तन होने पर लिंक-केवल उत्तर अमान्य हो सकते हैं। –

संबंधित मुद्दे