मेरी शक्तियों की स्क्रिप्ट क्यों नहीं चल रही हैं?

मैंने एक पावरहेल स्क्रिप्ट के रूप में एक साधारण बैच फ़ाइल लिखी, और जब वे दौड़ते हैं तो मुझे त्रुटियां मिल रही हैं।

यह मेरे पथ में एक स्क्रिप्ट निर्देशिका में है।

Cannot be loaded because the execution of scripts is disabled on this system. 
please see "get-help about-signing".

मैंने मदद में देखा, लेकिन यह सहायक से कम है।

0
ro fr bn
यही कारण है कि बैच फाइलें लाइव रहती हैं!
जोड़ा लेखक Matthew Lock, स्रोत

7 उत्तर

इसके अलावा यह जानने के आप स्क्रिप्ट नाम के सामने शामिल करने के लिए आवश्यकता हो सकती है कि । \ के लायक है। उदाहरण के लिए:

.\scriptname.ps1
0
जोड़ा

PowerShell का डिफ़ॉल्ट सुरक्षा स्तर हो सकता है, जो (आईआईआरसी) केवल हस्ताक्षरित स्क्रिप्ट चलाएगा।

इसे टाइप करने का प्रयास करें:

set-executionpolicy remotesigned

यह PowerShell को स्थानीय (यानी, एक स्थानीय ड्राइव पर) अनुमत स्क्रिप्ट चलाने के लिए अनुमति देगा।

फिर अपनी स्क्रिप्ट को फिर से निष्पादित करने का प्रयास करें।

0
जोड़ा
और आपको Windows 7 के तहत व्यवस्थापकीय विशेषाधिकारों के साथ PowerShell स्क्रिप्ट भी चलाना होगा।
जोड़ा लेखक Rod, स्रोत
आपको कम से कम विंडोज 8 के तहत प्रशासक विशेषाधिकारों के साथ पावरहेल चलाने की ज़रूरत है!
जोड़ा लेखक ComFreek, स्रोत
यह एक बहुत ही भयानक उत्तर है। एक के लिए, यह स्थायी रूप से संभावित रूप से अवांछनीय (और असुरक्षित) तरीकों से पावरहेल का डिफ़ॉल्ट सुरक्षा स्तर बदलता है। दूसरे के लिए, यह पर्याप्त रूप से समझाया गया है कि हस्ताक्षरित दूरस्थ स्क्रिप्ट और हस्ताक्षरित स्थानीय स्क्रिप्ट? लेकिन नहीं हस्ताक्षरित दूरस्थ स्क्रिप्ट्स, जो चॉकलेट कभी-कभी आवश्यकता होती है? निष्पादन विशेषाधिकार दिया जाएगा। अधिकतर उपयोगकर्ता शायद यह चाहते हैं और
जोड़ा लेखक Cecil Curry, स्रोत
जबकि उत्तर में कुछ कमजोरियों पर सेसिल की चिंता उचित है, मैं कुछ चीजों को इंगित करना चाहता था। 1) उनके दो लिंक मेरे लिए एक ही पृष्ठ खोलने लगते हैं। 2) यदि आप स्क्रिप्ट को आसानी से चलाने के लिए चाहते हैं, तो निष्पादन नीति को सेट करना शायद अभी भी जाने का तरीका है, और शायद ओपी से असंबंधित है: 3) ऐसा लगता है कि स्टार्टअप स्क्रिप्ट के लिए सबसे अच्छी नीति है, कमांड लाइन में निष्पादन नीति और दायरा निर्दिष्ट करें स्क्रिप्ट चला रहा है, और लॉगऑन के लिए आवश्यकतानुसार सत्र कॉन्फ़िगरेशन सेट करें। यदि आप विंडोज सत्र के दौरान उच्च सुरक्षा चाहते हैं लेकिन लॉगऑन के लिए कम हो जाते हैं, तो आप अपने स्क्रिप्ट ऑर्डर
जोड़ा लेखक omJohn8372, स्रोत

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

Set-ExecutionPolicy Restricted <-- Will not allow any powershell scripts to run.  Only individual commands may be run.

Set-ExecutionPolicy AllSigned <-- Will allow signed powershell scripts to run.

Set-ExecutionPolicy RemoteSigned <-- Allows unsigned local script and signed remote powershell scripts to run.

Set-ExecutionPolicy Unrestricted <-- Will allow unsigned powershell scripts to run.  Warns before running downloaded scripts.

Set-ExecutionPolicy Bypass <-- Nothing is blocked and there are no warnings or prompts.

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

0
जोड़ा
@MatthewLock प्रतिबंधित डिफ़ॉल्ट नीति है। और पढ़ें
जोड़ा लेखक Nadeem_MK, स्रोत
यह शीर्ष जवाब होना चाहिए।
जोड़ा लेखक WhiteHotLoveTiger, स्रोत
डिफ़ॉल्ट निष्पादन नीति मूल्य क्या है जो विंडोज़ एक नई स्थापना सेट करता है?
जोड़ा लेखक Matthew Lock, स्रोत

मैं इस त्रुटि को पावरहेल का आह्वान करके इस त्रुटि को बाईपास करने में सक्षम था:

powershell -executionpolicy bypass -File .\MYSCRIPT.ps1

यही है, मैंने स्क्रिप्ट का आह्वान करने के लिए -executionpolicy बाईपास जोड़ा।

यह विंडोज 7 सर्विस पैक 1 पर काम करता है। मैं शक्तियों के लिए नया हूं, इसलिए ऐसा करने के लिए चेतावनी हो सकती है कि मुझे पता नहीं है।

[2017-06-26 संपादित करें] मैंने बिना किसी समस्या के विंडोज़ 10 और विंडोज 2012r2 सहित अन्य प्रणालियों पर इस तकनीक का उपयोग जारी रखा है।

यहां मैं अब उपयोग कर रहा हूं। यह मुझे गलती से इस पर क्लिक करके स्क्रिप्ट चलाने से रोकता है। जब मैं शेड्यूलर में इसे चलाता हूं तो मैं एक तर्क जोड़ता हूं: "शेड्यूलर" और वह प्रॉम्प्ट को छोड़ देता है।

यह अंत में खिड़की को रोक देता है ताकि मैं पावरहेल के आउटपुट को देख सकूं।

if NOT "%1" == "scheduler" (
   @echo looks like you started the script by clicking on it.
   @echo press space to continue or control C to exit.
   pause
)

C:
cd \Scripts

powershell -executionpolicy bypass -File .\rundps.ps1

set psexitcode=%errorlevel%

if NOT "%1" == "scheduler" (
   @echo Powershell finished.  Press space to exit.
   pause
)

exit /b %psexitcode%
0
जोड़ा
यह है कि चॉकलेट चॉकलेट डाउनलोड और स्थापित करने के लिए उपयोग करता है
जोड़ा लेखक icc97, स्रोत
चेतावनी पर कोई अद्यतन?
जोड़ा लेखक RockPaperLizard, स्रोत

आदेश set-executionpolicy अप्रतिबंधित आपके द्वारा बनाए गए किसी भी स्क्रिप्ट को लॉग इन उपयोगकर्ता के रूप में चलाने की अनुमति देगा। बस लॉग आउट करने से पहले set-executionpolicy हस्ताक्षरित कमांड का उपयोग करके निष्पादन नीति सेटिंग को हस्ताक्षरित करने के लिए सुनिश्चित करें।

0
जोड़ा
set-executionpolicy हस्ताक्षरित देता है पैरामीटर 'निष्पादन नीति' आदि को बाध्य नहीं कर सकता
जोड़ा लेखक JinSnow, स्रोत
Set-ExecutionPolicy -ExecutionPolicy Bypass -Scope Process

मौजूदा सत्र में पावरहेल निष्पादित करने में सक्षम होने के लिए हमेशा ऊपर cmd का उपयोग करें।

0
जोड़ा
ओ.के. यह भी एक मनोरंजक उत्तर है। मैं इस आदेश को जल्द ही मेरे profile.ps1 पर जोड़ रहा हूं। बेगोन, शाम पावरहेल सुरक्षा!
जोड़ा लेखक Cecil Curry, स्रोत
यह + superuser.com/questions/612409/… + शोरकट लिंक = पूर्णता
जोड़ा लेखक user300375, स्रोत
Set-ExecutionPolicy -ExecutionPolicy Bypass -Scope Process

निम्न त्रुटि तब होती है जब उपरोक्त आदेश मेरे लिए काम करता है:

Access to the registry key 'HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell' is denied.
0
जोड़ा