বিদ্যমান উত্তরগুলির বেশিরভাগই কীভাবে ব্যাখ্যা করে তবে খুব কমই কেন তা ব্যাখ্যা করে । এবং ইন্টারনেটে অপরিচিতদের কাছ থেকে কোড কার্যকর করার আগে, বিশেষত এমন কোড যা সুরক্ষা ব্যবস্থা অক্ষম করে, আপনি ঠিক কী করছেন তা আপনার বুঝতে হবে। সুতরাং এই সমস্যাটি সম্পর্কে এখানে আরও কিছু বিশদ।
এক্সিকিউশন পলিসি পৃষ্ঠা সম্পর্কে টেকনেট থেকে :
উইন্ডোজ পাওয়ারশেল কার্যকরকরণের নীতিগুলি আপনাকে সেই শর্তগুলি নির্ধারণ করতে দেয় যার অধীনে উইন্ডোজ পাওয়ারশেল কনফিগারেশন ফাইলগুলি লোড করে এবং স্ক্রিপ্টগুলি চালায়।
পাওয়ারসেল বেসিকস - এক্সিকিউশন পলিসি এবং কোড সাইন ইন দ্বারা অঙ্কিত হিসাবে এর সুবিধাগুলি হ'ল :
- সম্পাদন নিয়ন্ত্রণ - স্ক্রিপ্টগুলি কার্যকর করার জন্য আস্থার স্তর নিয়ন্ত্রণ করুন।
- কমান্ড হাইজ্যাক - আমার পথে কমান্ডগুলির ইনজেকশন প্রতিরোধ করুন।
- পরিচয় - স্ক্রিপ্টটি এমন কোনও বিকাশকারী দ্বারা তৈরি করা এবং স্বাক্ষরিত হয় যা আমি বিশ্বাস করি এবং / অথবা আমি বিশ্বাস করি এমন শংসাপত্র কর্তৃপক্ষের শংসাপত্র সহ স্বাক্ষরিত।
- সত্যতা - স্ক্রিপ্টগুলি ম্যালওয়ার বা দূষিত ব্যবহারকারীর দ্বারা সংশোধন করা যায় না।
আপনার বর্তমান সম্পাদন নীতি পরীক্ষা করতে, আপনি চালাতে পারেন Get-ExecutionPolicy
। তবে আপনি সম্ভবত এখানে আছেন কারণ আপনি এটি পরিবর্তন করতে চান।
এটি করার জন্য আপনি Set-ExecutionPolicy
সেমিডলেটটি চালাবেন।
কার্যকর করার নীতিটি আপডেট করার সময় আপনার দুটি বড় সিদ্ধান্ত নিতে হবে।
এক্সিকিউশন নীতি প্রকার:
Restricted
† - স্থানীয়, দূরবর্তী বা ডাউনলোড করা কোনও স্ক্রিপ্ট সিস্টেমে কার্যকর করা যায় না।
AllSigned
- চালিত সমস্ত স্ক্রিপ্টের ডিজিটালি স্বাক্ষর করা দরকার।
RemoteSigned
- সমস্ত রিমোট স্ক্রিপ্ট (ইউএনসি) বা ডাউনলোড করাতে স্বাক্ষর করা দরকার।
Unrestricted
- কোনও ধরণের স্ক্রিপ্টের জন্য কোনও স্বাক্ষরের প্রয়োজন নেই।
নতুন পরিবর্তনের সুযোগ
LocalMachine
† - কার্যকরকরণের নীতিটি কম্পিউটারের সমস্ত ব্যবহারকারীকে প্রভাবিত করে।
CurrentUser
- কার্যকর করার নীতিটি কেবলমাত্র বর্তমান ব্যবহারকারীকেই প্রভাবিত করে।
Process
- কার্যকরকরণের নীতিটি কেবলমাত্র বর্তমান উইন্ডোজ পাওয়ারশেল প্রক্রিয়াটিকে প্রভাবিত করে।
† = ডিফল্ট
উদাহরণস্বরূপ : আপনি যদি কেবল বর্তমান ব্যবহারকারীর জন্য নীতিটি রিমোটসাইনডে পরিবর্তন করতে চান তবে আপনি নিম্নলিখিত কমান্ডটি চালাবেন:
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
দ্রষ্টব্য : এক্সিকিউশন নীতি পরিবর্তন করতে, আপনাকে অবশ্যই প্রশাসক হিসাবে পাওয়ারশেল চালিত হতে হবে । আপনি যদি নিয়মিত মোডে থাকেন এবং এক্সিকিউশন পলিসিটি পরিবর্তন করার চেষ্টা করেন তবে আপনি নিম্নলিখিত ত্রুটিটি পাবেন:
'HKEY_LOCAL_MACHINE OF সফটওয়্যার \ মাইক্রোসফ্ট \ পাওয়ারশেল \ 1 \ শেলআইডস \ মাইক্রোসফট.পাওয়ারশেল' রেজিস্ট্রি কীটিতে অ্যাক্সেস অস্বীকৃত। ডিফল্ট (লোকালম্যাচাইন) স্কোপের জন্য কার্যকরকরণের নীতিটি পরিবর্তন করতে, "প্রশাসক হিসাবে চালান" বিকল্পের সাহায্যে উইন্ডোজ পাওয়ারশেল শুরু করুন।
আপনি যদি ইন্টারনেট থেকে ডাউনলোড না হওয়া নিজের স্ক্রিপ্টগুলিতে (বা কমপক্ষে ইউএনসি মেটাডেটা ধারণ করে না) অভ্যন্তরীণ বিধিনিষেধগুলি আরও শক্ত করতে চান তবে আপনি নীতিটি কেবল স্বাক্ষরিত লিপিগুলি চালাতে বাধ্য করতে পারেন। আপনার নিজের স্ক্রিপ্টগুলিতে স্বাক্ষর করতে, আপনি স্কট হ্যানসেলম্যানের নিবন্ধ পাওয়ারশেল স্ক্রিপ্টগুলিতে নিবন্ধটি অনুসরণ করতে পারেন ।
দ্রষ্টব্য : বেশিরভাগ লোকেরা যখনই পাওয়ারশেলটি খোলেন তখনই এই ত্রুটিটি পাওয়া যাবে কারণ PS যখন এটি প্রথম চালু করার চেষ্টা করে তখন আপনার ব্যবহারকারী প্রোফাইল স্ক্রিপ্টটি কার্যকর করে যা আপনার পরিবেশ সেট আপ করে তবে আপনি এটি পছন্দ করেন।
ফাইলটি সাধারণত এতে অবস্থিত:
%UserProfile%\My Documents\WindowsPowerShell\Microsoft.PowerShellISE_profile.ps1
পাওয়ারশেল ভেরিয়েবলটি চালিয়ে আপনি সঠিক অবস্থানটি সন্ধান করতে পারেন
$profile
প্রোফাইলে আপনার যত্ন করার মতো কিছু নেই এবং আপনার সুরক্ষা সেটিংসের সাথে ঝাঁকুনি না দিতে চাইলে আপনি কেবল এটি মুছতে পারেন এবং পাওয়ারশেল এমন কোনও কিছুই খুঁজে পাবেন না যা এটি কার্যকর করতে পারে না।