ps1 लोड नहीं किया जा सकता क्योंकि स्क्रिप्ट चलाना इस सिस्टम पर अक्षम है


120

मैं powershellc # से स्क्रिप्ट चलाने की कोशिश करता हूं ।

सबसे पहले मैं सेट ExecutionPolicyकरने के लिए Unrestrictedऔर स्क्रिप्ट अब से चल रहा है PowerShell ISE

अब यह c # मेरा कोड है:

class Program
{
    private static PowerShell ps;
    static void Main(string[] args)
    {
        ps = PowerShell.Create();
        string ps1File = Path.Combine(Environment.CurrentDirectory, "script.ps1");
        ExecuteScript(ps1File);
        Console.ReadLine();
    }

    static void ExecuteScript(string script)
    {
        try
        {
            ps.AddScript(script);
            Collection<PSObject> results = ps.Invoke();
            Console.WriteLine("Output:");
            foreach (var psObject in results)
            {
                Console.WriteLine(psObject);
            }
            Console.WriteLine("Non-terminating errors:");
            foreach (ErrorRecord err in ps.Streams.Error)
            {
                Console.WriteLine(err.ToString());
            }
        }
        catch (RuntimeException ex)
        {
            Console.WriteLine("Terminating error:");
            Console.WriteLine(ex.Message);
        }
    }
}

और आउटपुट है:

ps1 लोड नहीं किया जा सकता क्योंकि स्क्रिप्ट चलाना इस सिस्टम पर अक्षम है। अधिक जानकारी के लिए http://go.microsoft.com/fwlink/?LinkID=135170 पर about_Execution_Polurities देखें ।


1
क्या आपने स्थानीय मशीन के लिए नीति क्षेत्र निर्धारित करने का प्रयास किया है? 'सेट-एक्ज़ीक्यूशनपुलिस -सोपोप लोकल माचिन-एक्ज़िकिशनपुलिस अनारक्षित'
टोटेम

6
Get-ExecutionPolicy -Listअपने प्रश्न को परिणामों के साथ चलाएँ और संपादित करें। यह कमांड आपको अलग-अलग स्कोप और उनके एक्सक्लूसिव पॉलीसी सेटिंग दिखाएगा।
जेम्स सी।

ऐसा नहीं लगता कि मुझे डर है, लेकिन मैं स्पष्ट नहीं हूं, यह कमांड लाइन स्तर पर नहीं है, क्योंकि मैं समस्याओं के साथ एक दूरस्थ डेस्कटॉप पर चलने में सक्षम हूं।
योर्कशायरफ्लैटकैप

जवाबों:


370

यह वर्तमान उपयोगकर्ता के अपरिभाषित होने के कारण हो सकता है ExecutionPolicy

आप निम्नलिखित की कोशिश कर सकते हैं:

Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy Unrestricted

3
काम करता है !! धन्यवाद !
राखी धवले

2
मुझे पार्सल के साथ यह समस्या थी और मैंने आपके उत्तर के साथ हल किया, धन्यवाद!
ngelo Polotto

12
BTW, यह Powershellखिड़कियों के cmd में निष्पादित किया जाना चाहिए ।
ट्रम्प 2020 - न्याय

बहुत बहुत धन्यवाद!! दोस्तों इसे पहले ट्राई करना चाहिए!
एफएस गुयेन

3
@HDJEMAI, मुझे लगता है कि यह इस बात पर निर्भर करता है कि आप इसे किस संदर्भ में चला रहे हैं। Unrestrictedआप सभी स्क्रिप्ट चला सकते हैं। इसका एक और विकल्प निष्पादन नीति को निर्धारित करना होगा RemoteSignedक्योंकि यह अनुमति देगा Allow local scripts and remote signed scriptsलेकिन आवेदन पर निर्भर करता है और यह क्या कर रहा है यह अभी भी उसी त्रुटि को फेंक सकता है। मुझे लगता है कि सुरक्षा के संदर्भ में आपका दृष्टिकोण मान्य है और आप हमेशा पढ़ सकते हैं कि नीति का उपयोग करने से पहले क्या है Get-ExecutionPloicy। हालाँकि यह कहा जा रहा है कि यह स्कोप वर्तमान उपयोगकर्ता है, इसलिए मेरी राय में जोखिम छोटा है। आशा है कि ये आपकी मदद करेगा।
टॉम

27

व्यवस्थापकीय मोड में शक्तियाँ खोलें और निम्न कमांड चलाएँ

Set-ExecutionPolicy RemoteSigned


25

इस कोड को अपने पॉवरशेल या सीएमडी में चलाएं

Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass

1
अन्य भाषाओं के लिए काम करता है (अभी एक ईओण ऐप का संपादन)!
चिवड़ा

मेरे लिए भी काम किया, वीएसपीएल कमांड के उपयोग से रनिंग टाइपस्क्रिप्ट प्राप्त करने के लिए VIsual Studio Code टर्मिनल के अंदर चला गया
aonepathan

12

यदि आप दृश्य स्टूडियो कोड का उपयोग कर रहे हैं:

  1. टर्मिनल खोलें
  2. कमांड चलाएं: सेट-एक्ज़ीक्यूशनपॉलिशी -स्कॉप करेंट -यूज़र-एक्ज़िकिशनपुलिस अप्रतिबंधित
  3. फिर कमांड प्रॉटेक्टर conf.js चलाएं

यह प्रोट्रैक्टर टेस्ट स्क्रिप्ट निष्पादन से संबंधित है और मैंने उसी मुद्दे का सामना किया और इसे इस तरह हल किया गया।


7

इस सिस्टम त्रुटि पर रनिंग स्क्रिप्ट्स को ठीक करने के लिए निम्न तीन चरणों का उपयोग किया जाता है

Step1: इस तरह की समस्या को ठीक करने के लिए, हमें व्यवस्थापक मोड में पावर शेल शुरू करना होगा।

Step2: निम्न कमांड सेट टाइप करें- ExecutionPolicy RemoteSign Step3: अपनी पुष्टि के लिए Y दबाएं।

अधिक जानकारी के लिए निम्नलिखित पर जाएं https://youtu.be/J_596H-sWsk


4

PowerShell निष्पादन नीति प्रतिबंधित के लिए डिफ़ॉल्ट है। आप PowerShell निष्पादन नीतियों को Set-ExecutionPolicy cmdlet से बदल सकते हैं। RemoteSign के लिए स्क्रिप्ट सेट नीति चलाने के लिए।

PS C:> Set-ExecutionPolicy RemoteSigned नीचे पावरशेल में चार अलग-अलग निष्पादन नीतियों की सूची है

प्रतिबंधित - कोई स्क्रिप्ट नहीं चलाई जा सकती। ऑलसाइनड - एक विश्वसनीय प्रकाशक द्वारा हस्ताक्षरित केवल लिपियों को चलाया जा सकता है। रिमोटसाइनड - डाउनलोड की गई लिपियों पर एक विश्वसनीय प्रकाशक द्वारा हस्ताक्षरित होना चाहिए। अप्रतिबंधित - सभी विंडोज पॉवरशेल स्क्रिप्ट को चलाया जा सकता है।


3

व्यवस्थापक मोड में खुली विंडोज़ को मजबूत करें और निम्न कमांड और उसका काम VOILA चलाएं !!

सेट-एक्ज़ीक्यूशन Policy RemoteSigned


2

एक अन्य समाधान है निर्देशिका C: \ Users% उपयोगकर्ता नाम% \ AppData \ Roaming \ npm \ से ng.ps1 निकालें और npm कैश समाशोधन


1
मुझे npm मॉड्यूल के साथ एक ही त्रुटि थी और यह वह समाधान है जो मुझे सबसे अच्छा लगता है। यदि आप .ps1 फ़ाइल को निकालते हैं, तो यह खुशी से अन्य दो लिपियों में से एक का उपयोग करेगा (उदाहरण के लिए .cmd पर विंडोज, एक बिना विस्तार के अन्यथा), और आपको सुरक्षा कॉन्फ़िगरेशन नहीं बदलना होगा
Giovanni P.

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.