خبر و ترفند روز

خبر و ترفند های روز را اینجا بخوانید!

نحوه فعال کردن و استفاده از سیاست اجرای اسکریپت در Windows PowerShell

در اینجا نحوه استفاده از Windows PowerShell با فعال کردن سیاست اجرای اسکریپت آورده شده است.

iPowerShell، به طور پیش فرض، به شما امکان می دهد دستورات (cmdlets) را از طریق کنسول خود اجرا کنید. برای اجرای یک اسکریپت، می توانید یک فایل notepad با کد اسکریپت ایجاد کنید، آن را با پسوند فایل ps1 ذخیره کنید و از طریق کنسول PowerShell اجرا کنید. همچنین می توانید مستقیماً اسکریپت را برای اجرا روی کنسول قرار دهید.

با این حال، اگر اولین بار است که یک اسکریپت را از طریق PowerShell اجرا می‌کنید، با خطای «Script runing is disabled» مواجه می‌شوید. به طور پیش فرض، اجرای اسکریپت در PowerShell به عنوان یک اقدام امنیتی برای جلوگیری از اجرای اسکریپت های مخرب در سیستم شما غیرفعال است. در اینجا ما دو روش برای فعال کردن خط مشی اجرای اسکریپ در Windows PowerShell را به شما نشان می دهیم.

چگونه خط مشی اجرایی موجود خود را بررسی کنید

خط مشی اجرای مجموعه Powershell تعریف نشده است

می توانید از یک cmdlet PowerShell برای دریافت خط مشی اجرایی فعلی خود استفاده کنید. دانستن خط مشی اجرایی فعلی شما برای دانستن اینکه آیا به تغییر خط مشی نیاز دارید یا خیر ضروری است.

برای دریافت خط مشی اجرای فعلی خود برای کاربر فعلی:

  1. Windows PowerShell را به عنوان مدیر باز کنید.
  2. دستور زیر را در کنسول PowerShell تایپ کنید و Enter را بزنید: get-executionpolicy
  3. از آنجایی که هنگام اجرای اسکریپت با خطا مواجه شده اید، بازگشت احتمالاً Restricted را به عنوان خط مشی اجرای فعلی شما نشان می دهد.
  4. اگر شما نیاز به مشاهده خط مشی اجرا برای همه حوزه های پشتیبانی شده دارید: get-executionpolicy -list

get-executionpolicy

get-executionpolicy -list

برای اجرای اسکریپت های محلی بدون خطا، باید خط مشی اجرا را به RemoteSigned تغییر دهید. می توانید خط مشی اجرا را از برنامه تنظیمات و PowerShell تغییر دهید.

نحوه فعال کردن سیاست اجرای PowerShell با استفاده از برنامه تنظیمات

می‌توانید با استفاده از برنامه تنظیمات، سیاست اجرای PowerShell را روی RemoteSigned تغییر دهید و تنظیم کنید. تنها کاری که باید انجام دهید این است که تنظیمات PowerShell را در بخش توسعه دهندگان تغییر دهید تا سیاست اجرا را تغییر دهید تا اجرای اسکریپت PowerShell فعال شود.

مطلب مرتبط:   نحوه رفع عدم کارکرد منوی زمینه دسکتاپ ویندوز 10 و 11

برای تغییر خط مشی اجرا با استفاده از تنظیمات:

  1. Win + I را فشار دهید تا تنظیمات باز شود.
  2. تب Privacy & Security را در قسمت سمت چپ باز کنید.
  3. بعد روی For developers کلیک کنید.
  4. برای گسترش بخش PowerShell کلیک کنید.
  5. سوئیچ را تغییر دهید تا سیاست اجرا را تغییر دهید تا اسکریپت‌های PowerShell محلی بدون امضا اجرا شوند – نیاز به امضا برای اسکریپت‌های راه دور.
  6. پس از اتمام، PowerShell را باز کنید، get executionpolicy را تایپ کنید و Enter را فشار دهید. خط مشی اجرا برای کاربر فعلی اکنون روی RemoteSigned تنظیم شده است.
  7. اگر می خواهید سیاست اجرا را غیرفعال کنید، سوئیچ PowerShell را تغییر دهید و آن را روی Off قرار دهید.

ویندوز 11 برای توسعه دهندگانتنظیمات ویندوز 11 اجرای اسکریپت powershell را فعال کنید

نحوه اجرای اسکریپت ها در PowerShell با استفاده از PowerShell

خط مشی اجرای مجموعه Powershell از راه دور طراحی شد

می‌توانید از یک cmdlet PowerShell برای تنظیم سیاست اجرا روی RemoteSigned استفاده کنید. رابط خط فرمان تغییر سریع خط مشی اجرا را بدون استفاده از برنامه تنظیمات آسان می کند.

همچنین، برنامه تنظیمات فقط می‌تواند سیاست اجرای RemoteSigned را فعال یا غیرفعال کند. در حالی که PowerShell به شما امکان می دهد سیاست ها و محدوده های دیگری را نیز تنظیم کنید.

برای تغییر سیاست اجرا با استفاده از PowerShell:

  1. PowerShell را به عنوان مدیر باز کنید.
  2. در پنجره PowerShell، دستور زیر را تایپ کرده و Enter را فشار دهید: Set-ExecutionPolicy RemoteSigned
  3. اگر از شما خواسته شد، A را فشار دهید تا عمل تایید شود. این سیاست اجرای RemoteSigned را برای همه کاربران تنظیم می کند. اگر می‌خواهید سیاست اجرا را فقط برای کاربر فعلی تنظیم کنید، از پارامتر Scope و سپس نام کاربری استفاده کنید.
  4. به عنوان مثال، برای تنظیم سیاست اجرای RemoteSigned برای CurrentUser، از دستور زیر استفاده کنید: Set-ExecutionPolicy RemoteSgined -Scope CurrentUser
  5. طبق نیاز خود، CurrentUser را با سایر کاربران (Scope) در دستور بالا جایگزین کنید.

Set-ExecutionPolicy RemoteSigned

Set-ExecutionPolicy RemoteSgined -Scope CurrentUser

نحوه حذف سیاست اجرای اسکریپت با استفاده از PowerShell

set-execution-policy-undefined

اگر می خواهید اجرای اسکریپت را غیرفعال کنید، با استفاده از cmdlet Set_ExecutionPolicy، خط مشی اجرا را روی Undefined تنظیم کنید. این یک حالت پیش فرض است و از اجرای هر اسکریپتی توسط PowerShell جلوگیری می کند.

مطلب مرتبط:   نحوه نصب و دسترسی به درایوهای NTFS ویندوز در لینوکس

برای غیرفعال کردن اجرای اسکریپت با استفاده از PowerShell:

  1. PowerShell را با مجوز بالا باز کنید.
  2. سپس دستور زیر را تایپ کرده و enter را فشار دهید تا اجرای اسکریپت برای همه کاربران غیرفعال شود: Set-ExecutionPolicy undefined
  3. دستور بالا سیاست اجرا را به طور پیش فرض (تعریف نشده) برای همه کاربران تنظیم می کند. اگر می خواهید اجرای اسکریپت را برای یک محدوده خاص غیرفعال کنید، از دستور زیر استفاده کنید: Set-ExecutionPolicy undefined -Scope CurrentUser
  4. دستور بالا اجرای اسکریپت را برای CurrentUser غیرفعال می کند.

Set-ExecutionPolicy undefined

Set-ExecutionPolicy undefined -Scope CurrentUser

درک سیاست های اجرا و دامنه

به بیان ساده، سیاست اجرای PowerShell خط‌مشی است که نحوه اجرای فایل‌های پیکربندی و اسکریپت‌ها را کنترل می‌کند. هدف مورد نظر جلوگیری از اجرای تصادفی اسکریپت های مخرب توسط کاربران است. هفت خط مشی اجرای PowerShell عبارتند از Default، Restricted، RemoteSigned، AllSigned، Unrestricted، Bypass و Undefined.

جدول زیر به طور خلاصه تمام سیاست های اجرای PowerShell را توضیح می دهد:

سیاست اجرا

اجرا

پیش فرض

خط مشی اجرای پیش فرض را به صورت Restricted on Windows Client و RemoteSigned در Windows Server تنظیم می کند.

همه امضا شده

اجرای اسکریپت های امضا شده توسط ناشر را اجازه می دهد.

میان بر

اجرای نامحدود اسکریپت ها برای برنامه های بزرگتر.

RemoteSigned

اجرای اسکریپت محلی نوشته شده را اجازه می دهد. برای اسکریپت های دانلود شده از اینترنت به امضای دیجیتال نیاز دارد.

محصور

اجازه اجرای اسکریپت را نمی دهد، بلکه فقط دستورات تکی PowerShell را می دهد.

تعریف نشده

خط مشی اجرا را روی Restricted برای سرویس گیرندگان ویندوز و RemoteSigned برای Windows Server تنظیم می کند.

مطلب مرتبط:   وضوح فوق العاده خودکار مایکروسافت چیست و چگونه با DLSS و FSR مقایسه می شود

بدون محدودیت

اجازه اجرای اسکریپت بدون امضا با یک هشدار برای اسکریپت های دانلود شده از اینترنت.

محدوده سیاست اجرا

می توانید سیاست اجرا را برای یک محدوده خاص در PowerShell تنظیم کنید. پنج حوزه سیاست اجرا عبارتند از MachinePolicy، UserPolicy، Process، CurrentUser و LocalMachine.

جدول زیر به طور خلاصه تمام حوزه های سیاست اجرا را توضیح می دهد:

محدوده سیاست اجرا

اجرا

سیاست کاربر

توسط یک Group Policy برای کاربر فعلی پیکربندی شده است.

خط مشی ماشین

توسط یک خط مشی گروه برای همه کاربران پیکربندی شده است.

CurrenUser

برای کاربر فعلی پیکربندی شده و در کلید فرعی رجیستری HKEY_CURRENT_MACHINE ذخیره شده است.

ماشین محلی

برای همه کاربران پیکربندی شده و در کلید فرعی رجیستری HKEY_CURRENT_MACHINE ذخیره شده است.

روند

بر جلسه فعلی PowerShell تأثیر می گذارد و هنگامی که جلسه بسته می شود به طور خودکار حذف می شود.

افزودن یا حذف PowerShell Script Execution Policy در ویندوز

اجرای اسکریپت در PowerShell به طور پیش فرض برای کلاینت های ویندوز غیرفعال است و روی RemoteSigned برای سرور ویندوز تنظیم شده است. با این حال، کاربران قدرتمند می توانند سیاست های اجرایی را برای اجرای اسکریپت های PowerShell محلی، امضا شده و بدون امضا تغییر دهند.

از طرف دیگر، می‌توانید با چسباندن اسکریپت در کنسول PowerShell یا ECHO اسکریپت خود در ورودی استاندارد PowerShell، سیاست اجرای PowerShell را دور بزنید. اگر می‌خواهید اسکریپت‌ها را بدون تغییر خط‌مشی اجرا اجرا کنید، مفید است.