चूँकि यह प्रश्न उन प्रतिक्रियाओं को आकर्षित करना जारी रखता है जो या तो प्रश्न निकाय द्वारा मना की जाती हैं या वास्तविक समस्या का समाधान नहीं करती हैं , कृपया इस सरल सारांश को पढ़ें जिसे आपको जानना आवश्यक है:
- यह वह जगह है नहीं एक "क्यों नहीं चला PowerShell के अपने डिफ़ॉल्ट स्थापना नहीं होंगे लिपियों?" सवाल।
- यह वह जगह है नहीं एक "क्यों PowerShell रन लिपियों के अपने स्थापना इंटरनेट से डाउनलोड नहीं होगा?" सवाल।
- सवाल यह है कि
RemoteSigned
निष्पादन नीति स्क्रिप्ट निष्पादन को क्यों रोक रही है जब इसे नहीं करना चाहिए।RemoteSigned
एकमात्र निष्पादन नीति है जिसका मैं उपयोग करना चाहता हूं। मुझे पता है कि अन्य, कम-प्रतिबंधात्मक नीतियां उपलब्ध हैं। अगर वे नीतियां स्वीकार्य विकल्प होतीं, तो मैं उनके बजाय सिर्फ उनका उपयोग करता और यह प्रश्न मौजूद नहीं होता।- निष्पादन नीति पहले से ही निर्धारित है
RemoteSigned
। से इसे बदलनेRemoteSigned
के लिएRemoteSigned
एक समाधान नहीं है।- स्क्रिप्ट फ़ाइल स्थानीय रूप से बनाई और संग्रहीत की जाती है।
- स्क्रिप्ट फ़ाइल अवरोधित नहीं है। स्क्रिप्ट फ़ाइल कभी भी ब्लॉक नहीं हुई (पिछले बिंदु को देखें)।
- स्क्रिप्ट फ़ाइल को अनवरोधित नहीं किया जा सकता है क्योंकि अनब्लॉक करने के लिए कुछ भी नहीं है (पिछले बिंदु देखें)।
- स्क्रिप्ट फ़ाइल एक व्यवस्थापक द्वारा निष्पादित (होने का प्रयास) है।
Windows PowerShell
केवल आवेदन शामिल है। न तोWindows PowerShell ISE
और नCommand Prompt
ही कोई अन्य उपकरण या संपादक प्रासंगिक हैं।- समस्या का कारण पहले ही पहचान लिया गया है (स्वीकृत उत्तर देखें)। लगभग 8 वर्षों के बाद, मुझे लगता है कि अन्य सभी स्पष्ट स्पष्टीकरण, चाहे लागू हों या नहीं, पोस्ट किए गए हैं, भी। यदि आप अन्यथा सोचते हैं तो कृपया प्रश्न और मौजूदा उत्तर को अपनी संपूर्णता में जोड़ लें।
मैं 64-बिट विंडोज 7 प्रोफेशनल पर विंडोज पॉवरशेल 2.0 का उपयोग कर रहा हूं। मेरे पास एक स्क्रिप्ट है Desktop
जो निम्न त्रुटि का कारण बनती है जब मैं इसे चलाने की कोशिश करता हूं:
File C:\Users\UserName\Desktop\Script.ps1 cannot be loaded. The file C:\Users\UserName\Desktop\Script.ps1 is not digitally signed. The script will not execute on the system. Please see "get-help about_signing" for more details..
At line:1 char:54
+ C:\Users\UserName\Desktop\TestGetWindowsUpdateLog.ps1 <<<<
+ CategoryInfo : NotSpecified: (:) [], PSSecurityException
+ FullyQualifiedErrorId : RuntimeException
मैं एक डोमेन व्यवस्थापक और एक स्थानीय व्यवस्थापक दोनों हूं, और अगर मैं दौड़ता हूं, तो मैं Get-ExecutionPolicy -List
देख सकता हूं कि Group Policy Object
मैंने PowerShell को कॉन्फ़िगर करने के लिए बनाई गई RemoteSigned
मशीन के स्तर पर निष्पादन नीति को सही ढंग से लागू कर रहा है:
Scope ExecutionPolicy
----- ---------------
MachinePolicy RemoteSigned
UserPolicy Undefined
Process Undefined
CurrentUser Undefined
LocalMachine Undefined
मैंने स्वयं स्क्रिप्ट बनाई Notepad
और Sysinternals की streams
उपयोगिता और फ़ाइल Properties
डायलॉग का उपयोग करके यह पुष्टि की कि स्क्रिप्ट को इंटरनेट से आने के रूप में नहीं माना जा रहा है। यदि मैं एक डोमेन सर्वर पर नेटवर्क साझा करने के लिए स्क्रिप्ट की प्रतिलिपि बनाता हूं, तो इसे निष्पादित करने की अनुमति है। अगर मैं दौड़ता हूं, Set-ExecutionPolicy -ExecutionPolicy Unrestricted -Scope LocalMachine
तो स्थानीय स्क्रिप्ट को निष्पादित करने की अनुमति नहीं है, जो समझ में आता है कि कार्य निष्पादन नीति के MachinePolicy
दायरे में आने के बाद प्राथमिकता होगी।
जैसा कि दस्तावेज about_Execution_Policies
( वर्तमान में ; प्रश्न के समय ), RemoteSigned
नीति का अर्थ है:
लिखावट चल सकती है।
स्क्रिप्ट और कॉन्फ़िगरेशन फ़ाइलों पर एक विश्वसनीय प्रकाशक से डिजिटल हस्ताक्षर की आवश्यकता होती है जो इंटरनेट से डाउनलोड किया जाता है (ई-मेल और त्वरित संदेश कार्यक्रमों सहित)।
आपके द्वारा चलाए जाने वाले स्क्रिप्ट पर डिजिटल हस्ताक्षर की आवश्यकता नहीं है और जो आपने स्थानीय कंप्यूटर पर लिखा है (इंटरनेट से डाउनलोड नहीं किया गया है)।
इंटरनेट के अलावा अन्य स्रोतों से बिना स्क्रिप्ट के चलने वाले जोखिम और हस्ताक्षरित, लेकिन दुर्भावनापूर्ण, स्क्रिप्ट।
मेरी स्क्रिप्ट पर हस्ताक्षर नहीं किए गए हैं, लेकिन चूंकि यह स्थानीय रूप से बनाया और निष्पादित दोनों है, इसलिए इसे ऊपर तीसरी बुलेट बिंदु को पूरा करना चाहिए। इसलिए ...
- मेरी स्क्रिप्ट को क्यों नहीं चलने दिया जा रहा है?
- PowerShell को यह शिकायत क्यों है कि मेरी स्क्रिप्ट "डिजिटल रूप से हस्ताक्षरित नहीं है" जब उस आवश्यकता को केवल इंटरनेट से फ़ाइलों पर लागू होना चाहिए?
- PowerShell अब उस स्क्रिप्ट के बारे में कोई परवाह नहीं करता है जिस पर हस्ताक्षर नहीं किए जा रहे हैं जब यह एक नेटवर्क साझा से चलाया जाता है?