पावरशेल निष्पादन नीति समझाया गया
पोस्ट विषय ब्राउज़ करें
- पावरशेल निष्पादन नीति क्या है?
- उपलब्ध निष्पादन नीतियां
- निष्पादन नीति का दायरा और वरीयता
- वर्तमान पावरशेल निष्पादन नीति कैसे प्राप्त करें
- पावरशेल निष्पादन नीति कैसे सेट करें
- निष्कर्ष
- अन्य सहायक मार्गदर्शिका
- अतिरिक्त संसाधन और संदर्भ
पावरशेल निष्पादन नीति क्या है?
PowerShell में ExecutionPolicy एक सुरक्षा विशेषता है जो यह नियंत्रित करती है कि PowerShell कॉन्फ़िगरेशन फ़ाइलों को कैसे लोड करता है और स्क्रिप्ट चलाता है। ExecutionPolicy सुविधाएँ PowerShell को दुर्भावनापूर्ण स्क्रिप्ट चलाने से रोकने में मदद करती हैं।
आईओएस 10 गेम सेंटर
आप कंप्यूटर, उपयोगकर्ता या सत्र के लिए निष्पादन नीति सेट कर सकते हैं। सेट ExecutionPolicy निष्पादन नीति सेट करने के लिए cmdlet का उपयोग किया जा सकता है। PowerShell.exe कमांड में एक ExecutionPolicy पैरामीटर भी होता है जिसका उपयोग आप Powershell ExecutionPolicy सेट करने के लिए कर सकते हैं।
इस गाइड में आप विभिन्न प्रकार की पावरशेल निष्पादन नीतियों के बारे में जानेंगे। आप यह भी सीखेंगे कि Set-ExecutionPolicy और PowerShell.exe -ExecutionPolicy कमांड का उपयोग कैसे करें।
उपलब्ध निष्पादन नीतियां
यह खंड अलग-अलग निष्पादन नीति की व्याख्या करता है जिसे आप पावरशेल में सेट कर सकते हैं और प्रत्येक आपको क्या करने की अनुमति देगा।
प्रतिबंधित
- यह विंडोज 8, सर्वर 2012 और इसके बाद के संस्करण में डिफ़ॉल्ट निष्पादन नीति है।
- PowerShell कॉन्फ़िगरेशन फ़ाइलें (.ps1xml), मॉड्यूल स्क्रिप्ट फ़ाइलें (.psm1), और Windows PowerShell प्रोफ़ाइल (.ps1) को निष्पादित होने से रोकता है
- अलग-अलग पावरशेल कमांड की अनुमति देता है लेकिन स्क्रिप्ट को अस्वीकार करता है
सभी हस्ताक्षर
जब आप AllSigned ExecutionPolicy, PowerShell सेट करते हैं:
- सभी स्क्रिप्ट चलाता है
- यह आवश्यक है कि किसी स्क्रिप्ट को चलाने की अनुमति देने से पहले उस पर किसी विश्वसनीय प्रकाशक के हस्ताक्षर होने चाहिए। इसमें स्थानीय कंप्यूटर पर लिखी गई स्क्रिप्ट शामिल हैं
- जिस प्रकाशक की आपने पुष्टि नहीं की है, उसकी स्क्रिप्ट चलाने से पहले पुष्टि करने का संकेत विश्वसनीय है
- हस्ताक्षरित लेकिन दुर्भावनापूर्ण कोड चला सकते हैं
रिमोटसाइनड
रिमोट हस्ताक्षरित निष्पादन नीति:
- स्क्रिप्ट को चलने देता है
- यह आवश्यक है कि इंटरनेट से डाउनलोड की गई सभी लिपियों को आपके द्वारा विश्वसनीय के रूप में निर्दिष्ट प्रकाशक द्वारा डिजिटल रूप से हस्ताक्षरित किया जाना चाहिए। इसमें ईमेल और इंस्टेंट मैसेजिंग प्लेटफॉर्म के माध्यम से प्राप्त स्क्रिप्ट शामिल हैं।
- स्थानीय कंप्यूटर पर लिखी गई लिपियों के डिजिटल हस्ताक्षर की आवश्यकता नहीं होगी
- अन्य स्रोतों से दुर्भावनापूर्ण स्क्रिप्ट चलाने की अनुमति दे सकता है
अप्रतिबंधित
- असाइन नहीं की गई स्क्रिप्ट को निष्पादित करने की अनुमति देता है
- इंटरनेट से स्क्रिप्ट निष्पादित करने से पहले आपको चेतावनी देगा
- दुर्भावनापूर्ण कोड या स्क्रिप्ट चलाने का जोखिम
उपमार्ग
बाईपास निष्पादन नीति के साथ:
- कोई स्क्रिप्ट अवरुद्ध नहीं है। चेतावनी भी नहीं देता है।
अपरिभाषित
- इसका मतलब है कि कोई निष्पादन नीति परिभाषित नहीं है
- प्रभावी निष्पादन नीति प्रतिबंधित है (डिफ़ॉल्ट)
निष्पादन नीति का दायरा और वरीयता
आप पावरशेल निष्पादन नीति को यहां लागू कर सकते हैं:
लोकलमैकाचिन : केवल वर्तमान उपयोगकर्ताओं को प्रभावित करता है। इसकी सबसे कम प्राथमिकता है
तात्कालिक प्रयोगकर्ता : निष्पादन नीति केवल वर्तमान उपयोगकर्ता को प्रभावित करती है। वरीयता लेता है लोकलमैकाचिन लेकिन कम प्राथमिकता है प्रक्रिया .
प्रक्रिया : केवल वर्तमान सत्र पर लागू होता है। सर्वोच्च वरीयता लेता है।
वर्तमान पावरशेल निष्पादन नीति कैसे प्राप्त करें
वर्तमान पॉवरशेल एक्ज़ीक्यूशनपॉलिसी देखने के लिए नीचे दी गई कमांड चलाएँ:
|_+_|
सभी क्षेत्रों के लिए निष्पादन नीति सेट देखने के लिए इस आदेश का उपयोग करें:
|_+_|
आप कार्यक्षेत्र के आधार पर निष्पादन नीति भी प्राप्त कर सकते हैं। यहां कुछ नमूना आदेश दिए गए हैं:
|_+_|पावरशेल निष्पादन नीति कैसे सेट करें
जैसा कि मैंने परिचय में उल्लेख किया है, आप ExecutionPolicy को Set-ExecutionPolicy cmdlet के साथ सेट कर सकते हैं। आप PowerShell.exe -ExecutionPolicy कमांड का भी उपयोग कर सकते हैं।
निष्पादन नीति को सेट-निष्पादन नीति के साथ कैसे सेट करें
Set-ExecutionPolicy cmdlet का सिंटैक्स है:
|_+_|एक उदाहरण के रूप में, निष्पादन नीति को सेट करने के लिए रिमोटसाइनड नीचे दिए गए आदेश का प्रयोग करें:
|_+_|यहाँ आदेश का परिणाम है।
आदेश विफल हुआ क्योंकि मैंने PowerShell को व्यवस्थापक के रूप में नहीं खोला था।यहाँ व्यवस्थापक के रूप में निष्पादित आदेश है:
जैसा कि आप छवि से देख सकते हैं, नई निष्पादन नीति अब है रिमोटसाइनड .
पिछले 2 आदेशों से, मुझे आदेश की पुष्टि करने के लिए कहा गया था। इस संकेत को बायपास करने के लिए, शामिल करें -बल पैरामीटर।
आदेश अब पुष्टि के लिए संकेत दिए बिना निष्पादित होता है।
-बल पैरामीटर स्क्रिप्टिंग में विशेष रूप से उपयोगी है। इस पैरामीटर के बिना आपकी स्क्रिप्ट रुक सकती है।डिफ़ॉल्ट रूप से यह आदेश निष्पादन नीति सेट करता है स्थानीय मशीन दायरा। इसकी पुष्टि करने के लिए, नीचे दी गई कमांड चलाएँ:
टाइटनफॉल 2 कनेक्ट नहीं होगा|_+_|
निष्पादन नीति को दूसरे दायरे में लागू करने के लिए, का उपयोग करें - दायरा पैरामीटर।
नीचे दिया गया आदेश निष्पादन नीति सेट करता है तात्कालिक प्रयोगकर्ता :
|_+_|
जैसा कि आप परिणाम से देख सकते हैं, तात्कालिक प्रयोगकर्ता नीति अब नहीं है अपरिभाषित . यह अब है उपमार्ग , अंतिम आदेश के साथ नीति सेट।
PowerShell.exe -ExecutionPolicy के साथ निष्पादन नीति कैसे सेट करें?
यदि आप लॉग इन सत्र के लिए निष्पादन नीति को बायपास करना चाहते हैं, तो आप वर्तमान कमांड लाइन के लिए निष्पादन नीति सेट कर सकते हैं। यह PowerShell.exe कमांड का उपयोग करके प्राप्त किया जाता है।
इससे पहले कि मैं उदाहरण दूं, यहां वर्तमान निष्पादन नीति है:
वर्तमान निष्पादन नीति है प्रतिबंधित . ऐसा इसलिए है क्योंकि प्रक्रिया कार्यक्षेत्र को प्राथमिकता दी जाती है। पुष्टि करने के लिए, नीचे परिणाम देखें:
अगर तुम याद करते हो, प्रतिबंधित नीति स्क्रिप्ट चलाने की अनुमति नहीं देगी।
इसका मतलब है कि अगर मैं एक स्क्रिप्ट चलाने की कोशिश करता हूं, तो मुझे एक्सेस से वंचित कर दिया जाएगा। नीचे दी गई छवि आदेशों और उनके परिणामों की एक श्रृंखला दिखाती है। छवि के नीचे मेरी व्याख्या देखें।
छवि में दिखाया गया पहला आदेश है:
|_+_|मैंने पावरशेल स्क्रिप्ट चलाने की कोशिश की। तब मुझे नीचे त्रुटि संदेश प्राप्त हुआ:
फ़ाइल C:PSschedule powerhell exampleCreate-folders-from-text-file.ps1 लोड नहीं किया जा सकता क्योंकि इस सिस्टम पर स्क्रिप्ट चलाना अक्षम है।
इसका कारण यह है कि वर्तमान निष्पादन नीति है प्रतिबंधित . यह किसी भी स्क्रिप्ट को चलने की अनुमति नहीं देता है।
संदर्भ छवि पर वापस जाएं। अगली पंक्ति में, मैंने निम्न आदेश चलाया:
|_+_|प्रभावी रूप से, मैं thepowershell.exe कमांड के -ExecutionPolicy पैरामीटर का उपयोग करके कमांड लाइन के लिए एक अस्थायी निष्पादन नीति सेट कर सकता हूं। लेकिन मुझे वही त्रुटि संदेश मिला। कारण यह है कि मुझे स्क्रिप्ट को कॉल करने से पहले निष्पादन नीति निर्धारित करने की आवश्यकता है।
फिर अगली पंक्ति में, मैंने इस आदेश को निष्पादित किया:
|_+_|यह वर्तमान लॉग इन सत्र के लिए निष्पादन नीति को सेट करता है अप्रतिबंधित . तो जब मैं अब अपनी पावरशेल स्क्रिप्ट चलाता हूं, तो इसे सफलतापूर्वक निष्पादित किया जाता है! ऊपर संदर्भ छवि देखें।
पिछले विश्लेषण से यह लिया गया है: आप Powershell.exe -ExecutionPolicy का उपयोग करके वर्तमान सत्र के लिए Powershell ExecutionPolicy सेट कर सकते हैं। लेकिन, आपको अपनी स्क्रिप्ट को कॉल करने से पहले पहले कमांड चलाना होगा।यह पुष्टि करने के लिए कि Powershell.exe केवल वर्तमान सत्र के लिए नीति निर्धारित करता है, मैं वर्तमान सत्र से नीचे कमांड चलाऊंगा:
|_+_|परिणाम है अप्रतिबंधित के लिए तात्कालिक प्रयोगकर्ता दायरा। अगर मैं अपना वर्तमान सत्र लॉग ऑफ करता हूं और वापस लॉग ऑन करता हूं। यह Set-ExecutionPolicy कमांड द्वारा निर्धारित नीति पर वापस आ जाएगा।
निष्कर्ष
मुझे आशा है कि मैं पावरशेल निष्पादन नीतियों को प्राप्त करने और सेट करने के तरीके को सरल बनाने में सक्षम हूं। यदि आपके पास कोई प्रश्न या टिप्पणी है तो पृष्ठ के अंत में एक उत्तर दें फॉर्म का उपयोग करें।
अन्य सहायक मार्गदर्शिका
- पावरशेल समान ऑपरेटर नहीं: अनुप्रयोग, उदाहरण
- लूप के लिए पॉवरशेल समझाया गया: सिंटेक्स और उदाहरण

