আমার পাওয়ারশেল স্ক্রিপ্টগুলি কেন চলছে না?


103

আমি পাওয়ার শেল স্ক্রিপ্ট হিসাবে একটি সাধারণ ব্যাচের ফাইল লিখেছিলাম এবং সেগুলি চালানোর সময় আমি ত্রুটি পাচ্ছি।

এটি আমার পথে স্ক্রিপ্ট ডিরেক্টরিতে রয়েছে। এই ত্রুটিটি আমি পেয়েছি:

লোড করা যায় না কারণ এই সিস্টেমে স্ক্রিপ্টগুলি কার্যকর করা অক্ষম। দয়া করে "সাইন ইন সম্পর্কে সহায়তা পান" দেখুন।

আমি সাহায্যের দিকে চেয়েছিলাম তবে এটি সাহায্যকারী থেকে কম নয়।

উত্তর:


102

এটি পাওয়ারশেলের ডিফল্ট সুরক্ষা স্তর হতে পারে, যা (আইআইআরসি) কেবল স্বাক্ষরিত স্ক্রিপ্টগুলি চালাবে।

এটি টাইপ করার চেষ্টা করুন:

set-executionpolicy remotesigned

এটি পাওয়ারশেলকে স্থানীয়কে (অর্থাৎ স্থানীয় ড্রাইভে) স্বাক্ষরবিহীন স্ক্রিপ্টগুলি চালানোর অনুমতি দেওয়ার জন্য বলবে।

তারপরে আবার আপনার স্ক্রিপ্টটি কার্যকর করার চেষ্টা করুন।


5
কমপক্ষে উইন্ডোজ 8 এর অধীনে আপনাকে প্রশাসকের অধিকার নিয়ে পাওয়ারশেল চালাতে হবে!
কমফ্রিচ

1
এবং আপনাকে উইন্ডোজ 7 এর অধীনে প্রশাসনিক সুবিধাসহ পাওয়ারশেল স্ক্রিপ্টটি চালাতে হবে।
রড

14
এটি মোটামুটি ভীতিজনক উত্তর। একটির জন্য, এটি সম্ভবত অবাঞ্ছিত (এবং নিরাপত্তাহীন) উপায়ে পাওয়ারশেলের ডিফল্ট সুরক্ষা স্তরকে স্থায়ীভাবে পরিবর্তন করে। কিন্তু - অন্য জন্য, এটি এমনকি পর্যাপ্তরূপে ব্যাখ্যা করার দূরবর্তী স্ক্রিপ্ট এবং স্বাক্ষরবিহীন স্থানীয় স্ক্রিপ্ট স্বাক্ষরিত ব্যর্থ না স্বাক্ষরবিহীন দূরবর্তী স্ক্রিপ্ট, যা Chocolatey মাঝেমধ্যে প্রয়োজন - ফাঁসি বিশেষাধিকার প্রদান করা হবে। বেশিরভাগ ব্যবহারকারী সম্ভবত পরিবর্তে এটি এবং এটি চান ।
সিসিল কারী

1
উত্তরে কিছু দুর্বলতা সম্পর্কে সিসিলের উদ্বেগ ন্যায্য হলেও আমি কয়েকটি বিষয় তুলে ধরতে চেয়েছিলাম। 1) তার দুটি লিঙ্ক আমার জন্য একই পৃষ্ঠাটি খুলতে উপস্থিত হবে। ২) আপনি যদি স্ক্রিপ্টগুলি কেবল চালনার জন্য চান তবে কার্যকর করতে হবে নীতি নির্ধারণের পদ্ধতিটি সম্ভবত এখনও যাওয়ার উপায় এবং সম্ভবত: ওপির সাথে সম্পর্কিত নয়: 3) মনে হয় সেরা নীতিটি স্টার্টআপ স্ক্রিপ্টগুলির জন্য, আদেশ আদেশে কার্যকরকরণের নীতি এবং সুযোগ উল্লেখ করুন specify স্ক্রিপ্টটি চালাচ্ছে এবং লগনের জন্য সেশন কনফিগারেশনটি প্রয়োজনীয় হিসাবে সেট করে। আপনি যদি উইন্ডোজ সেশনের সময় উচ্চ সুরক্ষা চান তবে লগনের জন্য হ্রাস পেয়ে থাকেন তবে আপনি আপনার স্ক্রিপ্ট ক্রমটিতে সবিস্তারে চান।
#John8372

এক-শটগুলির জন্য, আমি নীচে অঙ্কুরের উত্তরটি পেয়েছি যা চলমান পাওয়ারশেলের উদাহরণটির জন্য একটি অস্থায়ী ব্যতিক্রম সংজ্ঞা দেয় যা সবচেয়ে সহায়ক।
ফ্লোরেনজ ক্লে

79

আপনার চালানো দরকার Set-ExecutionPolicy:

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.

3
উইন্ডোজ একটি নতুন ইনস্টলেশন সেট করে এমন ডিফল্ট এক্সিকিউশনপলিসি মানটি কী?
ম্যাথু লক

5
@ ম্যাথিউলক Restrictedহ'ল ডিফল্ট নীতি। আরও পড়ুন
নাদিম_এমকে

24

ব্যবহার করুন:

Set-ExecutionPolicy -ExecutionPolicy Bypass -Scope Process

বর্তমান সেশনে পাওয়ারশেল চালিত করতে সক্ষম করতে সর্বদা উপরের কমান্ডটি ব্যবহার করুন।


এই + superuser.com/questions/612409/... + + shorcut লিংক = পরিপূর্ণতা
Q20

16

আমি এইভাবে পাওয়ারশেলকে অনুরোধ করে এই ত্রুটিটি বাইপাস করতে সক্ষম হয়েছি:

powershell -executionpolicy bypass -File .\MYSCRIPT.ps1

এটি হ'ল আমি -executionpolicy bypassস্ক্রিপ্টটি যেভাবে চালু করেছি তাতে আমি যুক্ত করেছিলাম।

এটি উইন্ডোজ Service সার্ভিস প্যাক ১ এ কাজ করেছে I আমি পাওয়ারশেলের সাথে নতুন so

[2017-06-26 সম্পাদনা করুন] আমি ইস্যুটি ছাড়াই উইন্ডোজ 10 এবং উইন্ডোজ 2012 আর 2 সহ অন্যান্য সিস্টেমে এই কৌশলটি ব্যবহার করে চলেছি।

আমি এখন যা ব্যবহার করছি তা এখানে। এটি আমাকে দুর্ঘটনাক্রমে স্ক্রিপ্টটি ক্লিক করে চালানো থেকে রক্ষা করে। আমি যখন শিডিয়ুলারে চালিত করি তখন আমি একটি যুক্তি যুক্ত করি: "শিডিয়ুলার" এবং এটি প্রম্পটকে বাইপাস করে।

এটি উইন্ডোটি শেষে থামায় যাতে আমি পাওয়ারশেলের আউটপুট দেখতে পারি।

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%

এই কি chocolatey ডাউনলোড ব্যবহারসমূহ এবং chocolatey ইনস্টল
icc97

আমি সেট-এক্সিকিউশনপলিসি বাইপাস-ফাইল সি: \ ব্যবহারকারী \ ডেভিড \ ডেস্কটপ \ test.ps1 কমান্ডটি চালানোর চেষ্টা করেছি এবং একটি ত্রুটি বার্তা পেয়েছি। এই কমান্ডের জন্য কোনও ফাইল ফাইল নেই।
ডেভিড স্পেক্টর

আচ্ছা বুঝলাম. আপনাকে পাওয়ার শেল-এক্সিকিউশনপোলোসি বাইপাস-ফাইল সি: \ ব্যবহারকারীগণ by ডেভিড F ডেস্কটপ \ test.ps1 কমান্ড সমেত একটি শর্টকাট তৈরি করতে হবে। নিরাপদ গ্লোবাল কমান্ড সেট-এক্সিকিউশনপলিসি রিস্ট্রাক্ট দেওয়া হলেও টেস্ট.পিএস 1 কমান্ডটি চালানো হয়। আমি আশা করি এই প্রাথমিক তথ্যটি কাউকে সাহায্য করবে।
ডেভিড স্পেক্টর

5
Set-ExecutionPolicy -ExecutionPolicy Bypass -Scope Process

উপরের কমান্ডটি নিম্নলিখিত ত্রুটি হওয়ার পরেও আমার পক্ষে কাজ করেছে:

Access to the registry key 'HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell' is denied.

5

এছাড়াও এটি আপনার জানা দরকার যে আপনাকে .\স্ক্রিপ্ট নামের সামনে অন্তর্ভুক্ত করতে হতে পারে need উদাহরণ স্বরূপ:

.\scriptname.ps1

1

কমান্ডটি আপনার দ্বারা নির্মিত set-executionpolicy unrestrictedকোনও স্ক্রিপ্ট লগ ইন করা ব্যবহারকারী হিসাবে চালানোর অনুমতি দেবে। set-executionpolicy signedলগ আউট করার আগে কমান্ডটি ব্যবহার করে সাইন করে এক্সিকিউশনপোলসি সেটিংটি সেট করে রাখা নিশ্চিত হয়ে নিন।


set-executionpolicy signedCannot bind parameter 'ExecutionPolicy'ইত্যাদি দেয়
জিনসনু

0

উইন্ডোজ 10 এ: মাইফিল.পিএস 1 এর সুরক্ষা সম্পত্তি পরিবর্তন করতে ক্লিক করুন এবং মাইফিল.পিএস 1 এর ডান ক্লিক / বৈশিষ্ট্যগুলিতে "অ্যাক্সেসের অনুমতি দিন" পরিবর্তন করুন

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.