2008-08-15 6 views
12

के साथ विफल रहता है जब मैं .NET असेंबली पर हस्ताक्षर करने के लिए एक नई कुंजी बनाने के लिए मजबूत नाम उपकरण का उपयोग करता हूं तो मुझे एक त्रुटि संदेश त्रुटि संदेश दिया जाता है। यह विंडोज एक्सपी मशीन पर ठीक काम करता है लेकिन यह मेरी Vista मशीन पर काम नहीं करता है।sn.exe एक्सेस अस्वीकृत त्रुटि संदेश

PS C:\users\brian\Dev\Projects\BELib\BELib> sn -k keypair.snk 

Microsoft (R) .NET Framework Strong Name Utility Version 3.5.21022.8 
Copyright (c) Microsoft Corporation. All rights reserved. 

Failed to generate a strong name key pair -- Access is denied. 

इस समस्या का कारण क्या है और मैं इसे कैसे ठीक कर सकता हूं?


आप एक प्रशासक के रूप में अपने PowerShell या कमांड प्रॉम्प्ट चला रहे हैं? I को यह पर पहली जगह माना जाता है जब तक आप उपयोगकर्ता पहुंच पर नियंत्रण नहीं करते हैं या उपयोगकर्ता पहुंच नियंत्रण बंद कर देते हैं।

हाँ मैंने व्यवस्थापक के रूप में पीएस और नियमित कमांड प्रॉम्प्ट चलाने का प्रयास किया है। वही त्रुटि संदेश आता है।

उत्तर

26

हाँ मैंने पीएस और नियमित कमांड प्रॉम्प्ट व्यवस्थापक के रूप में चलाने का प्रयास किया है। एक ही त्रुटि संदेश आता है।

एक अन्य संभावित समाधान हो सकता है कि आप कुंजी सेल्सियस पर स्थित कंटेनर के लिए अपने उपयोगकर्ता खाते एक्सेस देनी: \ दस्तावेज़ और सेटिंग्स \ सभी उपयोगकर्ता \ Application Data \ Microsoft \ क्रिप्टो \ आरएसए \ MachineKeys

+1

अरे, इच्छा है कि मैं +1 से अधिक दे सकता हूं। मैं तुमसे बहुत प्यार करता हूं! –

+0

विंडोज 7 पर पथ 'सी: \ उपयोगकर्ता \ सभी उपयोगकर्ता \ माइक्रोसॉफ्ट \ Crypto \ RSA \ MachineKeys' है। आपको 'सभी उपयोगकर्ता' फ़ोल्डर देखने के लिए छिपी हुई और सिस्टम फ़ाइलों को दिखाने में सक्षम होना पड़ सकता है। – JMS10

3

क्या आप अपने पावरशेल या कमांड प्रॉम्प्ट को व्यवस्थापक के रूप में चला रहे हैं? मैंने यह देखने के लिए पहली जगह बनाई है जब तक आप उपयोगकर्ता पहुंच नियंत्रण में उपयोग नहीं करते हैं या उपयोगकर्ता पहुंच नियंत्रण बंद कर देते हैं।

+0

यह उपयोगकर्ता ** खाता ** नियंत्रण है! – Vercas

3

क्यों नहीं sysinternals आग लगाना प्रक्रिया मॉनीटर भी देखें कि आप क्या देख सकते हैं, यह पहली चीज है जब मैं किसी भी प्रकार का पहुंच संदेश से इनकार करता हूं?

http://technet.microsoft.com/en-us/sysinternals/bb896645.aspx

2

कुछ लोगों को इस समस्या को हल करने के लिए अपनी मशीनों के पुनर्निर्माण, लेकिन यह कुंजी कंटेनर सेल्सियस के लिए उपयोगकर्ता पहुँच देने के द्वारा हल किया जा सकता है: \ दस्तावेज़ और सेटिंग्स \ सभी उपयोगकर्ता \ Application Data \ Microsoft \ क्रिप्टो \ आरएसए \ मशीनकेस sn.exe -i का उपयोग करके बनाए गए प्रत्येक कंटेनर मशीनकेस निर्देशिका में स्थित है (जब तक कि आप कहीं और निर्दिष्ट नहीं करते)। Sn.exe द्वारा उपयोग किया जाने वाला डिफ़ॉल्ट कुंजी कंटेनर भी उस स्थान पर है।

यदि आप अपने कुंजी कंटेनर को किसी नए पर रीसेट करते हैं, और भूल जाते हैं कि यह कहां है .. आप sn.exe -c का उपयोग करके मजबूत नाम उपयोगिता के लिए कुंजी कंटेनर को रीसेट कर सकते हैं। इसलिए, यदि खाता एक्सेस फ़िक्स काम नहीं करता है, तो आप एक वैकल्पिक कुंजी स्टोर का उपयोग कर रहे हैं ताकि रीसेट क्रम में हो।

3

बस इसे अपडेट करने के लिए: मैं Vista पर एक ही समस्या में भाग गया। पीसी पर मेरे स्थानीय उपयोगकर्ता को कोई समस्या नहीं थी, लेकिन फिर हमने एक डोमेन पर स्विच किया और मेरे डोमेन उपयोगकर्ता (हालांकि स्थानीय व्यवस्थापक अधिकार होने के बावजूद) "प्रवेश अस्वीकृत" हो गया। मैंने सी: \ उपयोगकर्ता \ सभी उपयोगकर्ता \ माइक्रोसॉफ्ट \ Crypto \ RSA \ MachineKeys पर मेरे डोमेन उपयोगकर्ता पहुंच अधिकार प्रदान किए और इसे ठीक किया।

+0

विंडोज 7 पर यह ** सी: \ प्रोग्रामडेटा \ माइक्रोसॉफ्ट \ क्रिप्टो \ आरएसए \ मशीनकेस ** – djs

+0

'% ALLUSERSPROFILE% \ Microsoft \ Crypto \ RSA \ MachineKeys' – hypersw