c# - .ps1 लोड नहीं किया जा सकता क्योंकि स्क्रिप्ट का निष्पादन इस सिस्टम पर अक्षम है?




asp.net powershell (4)

आपको सेट-निष्पादन नीति चलाने की आवश्यकता है:

Set-ExecutionPolicy Unrestricted <-- Will allow unsigned powershell scripts to run.

Set-ExecutionPolicy Restricted <-- Will not allow unsigned powershell scripts to run.

Set-ExecutionPolicy RemoteSigned <-- Will allow only remotely signed powershell scripts to run.

उम्मीद है की यह मदद करेगा!

इस प्रश्न का उत्तर यहां दिया गया है:

मैं इस कोड को एएसपीनेट एप्लिकेशन से पावर खोल निष्पादित करने के लिए चलाता हूं:

System.Management.Automation.Runspaces.Runspace runspace = System.Management.Automation.Runspaces.RunspaceFactory.CreateRunspace();
runspace.Open();
System.Management.Automation.Runspaces.Pipeline pipeline = runspace.CreatePipeline();
pipeline.Commands.AddScript(@"\\servername\path");

pipeline.Commands.Add("Out-String");

Collection<PSObject> results = pipeline.Invoke();

runspace.Close();

लेकिन मुझे त्रुटि मिल रही है:

.ps1 लोड नहीं किया जा सकता क्योंकि स्क्रिप्ट का निष्पादन इस सिस्टम पर अक्षम है। कृपया अधिक जानकारी के लिए "get-help about_signing" देखें।

एक ही कोड कमांड प्रॉम्प्ट या विंडोज़ (विनफॉर्म) एप्लिकेशन से ठीक चलता है।


ऐसे कुछ परिदृश्य हैं जिनमें आप अन्य उत्तरों में सुझाए गए चरणों का पालन कर सकते हैं, सत्यापित करें कि निष्पादन नीति सही ढंग से सेट की गई है, और अभी भी आपकी स्क्रिप्ट विफल हो गई हैं। यदि यह आपके साथ होता है, तो आप शायद 64-बिट मशीन पर Power -hell के 32-बिट और 64-बिट संस्करणों के साथ हैं, और उस संस्करण में विफलता हो रही है जिसमें निष्पादन नीति सेट नहीं है। सेटिंग दोनों संस्करणों पर लागू नहीं होती है , इसलिए आपको इसे दो बार स्पष्ट रूप से सेट करना होगा।

System32 और SysWOW64 के लिए अपनी विंडोज निर्देशिका में देखें।

प्रत्येक निर्देशिका के लिए इन चरणों को दोहराएं:

  1. WindowsPowerShell \ v1.0 पर नेविगेट करें और powerhell.exe लॉन्च करें
  2. निष्पादन नीति के लिए वर्तमान सेटिंग की जांच करें:

    Get-ExecutionPolicy -List

  3. स्तर और दायरे के लिए ExecutionPolicy सेट करें, उदाहरण के लिए:

    Set-ExecutionPolicy -Scope LocalMachine Unrestricted

ध्यान दें कि आपको उस नीति के आधार पर PowerShell को व्यवस्थापक के रूप में चलाने की आवश्यकता हो सकती है जिसके लिए आप नीति सेट अप करने का प्रयास कर रहे हैं।

आप यहां बहुत कुछ पढ़ सकते हैं: विंडोज पावरशेल स्क्रिप्ट्स चलाना


समस्या यह है कि निष्पादन नीति प्रति उपयोगकर्ता आधार पर निर्धारित की जाती है। हर बार जब आप इसे चलाने में सक्षम करने के लिए इसे चलाते हैं तो आपको अपने एप्लिकेशन में निम्न आदेश चलाने की आवश्यकता होगी:

Set-ExecutionPolicy -Scope Process -ExecutionPolicy RemoteSigned

शायद यह एएसपी.नेट उपयोगकर्ता के लिए भी सेट करने का एक तरीका है, लेकिन इस तरह से इसका मतलब है कि आप अपना पूरा सिस्टम नहीं खोल रहे हैं, बस अपना आवेदन।

( Source )


निष्पादन नीति के कारण आपकी स्क्रिप्ट निष्पादित करने से अवरुद्ध है।

आपको पावरहेल को व्यवस्थापक के रूप में चलाने की आवश्यकता है और इसे क्लाइंट पीसी पर अप्रतिबंधित करने के लिए सेट करना होगा। आप इनके साथ कॉल करके कॉल कर सकते हैं

Set-ExecutionPolicy Unrestricted




powershell