پاورشل برای برنامهنویسان
@programming_tipsدرسنامه: اجرای PowerShell و تنظیم محیط (Execution Policy، پروفایلها)
وقتی PowerShell رو باز میکنیم، فقط وارد یک محیط خط فرمان نمیشیم، بلکه وارد یک محیط اسکریپتنویسی و اتوماسیون قدرتمند میشویم. برای استفاده بهینه و امن از PowerShell، باید دو چیز اصلی رو بدونیم: Execution Policy و پروفایلها (Profiles).
۱. اجرای PowerShell
برنامه PowerShell رو میشه به چند روش باز کرد:
- از طریق منوی Start: کافی است “PowerShell” رو جستجو کنید و نسخهی موردنظر (مثلاً Windows PowerShell یا PowerShell 7) رو باز کنید.
- از Run: با کلیدهای
Win + Rو تایپpowershellیاpwsh(برای PowerShell 7) میتونیم محیط رو باز کنیم. - از ترمینال ویندوز یا VS Code: میتونیم PowerShell رو به عنوان Terminal پیشفرض انتخاب کنیم.
وقتی PowerShell اجرا میشه، میبینیم که یک Prompt ظاهر میشه که معمولاً به شکل $> یا PS C:\> است. این همون جاییه که دستورات رو تایپ میکنیم و اجرا میکنیم.
۲. Execution Policy
الف) مفهوم Execution Policy
برنامه PowerShell برای امنیت کاربران، یک سیاست اجرایی (Execution Policy) داره که مشخص میکنه چه اسکریپتهایی اجازه اجرا دارند و چه اسکریپتهایی بلاک میشن. این موضوع اهمیت زیادی داره، چون PowerShell میتونه اسکریپتها رو با دسترسی کامل به سیستم اجرا کنه و اجرای یک اسکریپت ناشناس میتونه خطرناک باشه.
ب) انواع Execution Policy
۱. Restricted – پیشفرض در Windows PowerShell: هیچ اسکریپتی اجرا نمیشه، فقط دستورات تعاملی مجاز هستند.
۲. AllSigned – فقط اسکریپتهایی که با یک امضای معتبر دیجیتال هستند اجرا میشن.
3. RemoteSigned – اسکریپتهای دانلود شده از اینترنت باید امضا داشته باشن، اسکریپتهای محلی بدون امضا هم اجرا میشن.
4. Unrestricted – همه اسکریپتها اجرا میشن، حتی بدون امضا.
5. Bypass – هیچ محدودیتی وجود نداره.
ج) چطور Execution Policy رو چک و تغییر بدیم
برای مشاهده وضعیت فعلی، از دستور زیر استفاده میکنیم:
Get-ExecutionPolicy
برای تغییر سطح اجرای اسکریپتها (مثلاً به RemoteSigned):
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser
-Scope CurrentUserیعنی فقط روی حساب کاربری فعلی اعمال میشه و نیازی به دسترسی ادمین نیست.- اگر بخوای روی کل سیستم اعمال کنی، از
-Scope LocalMachineاستفاده میکنیم و نیاز به اجرا به عنوان Administrator داریم.
⚠️ نکته امنیتی: همیشه سطح اجرای PowerShell رو حداقل لازم قرار بدید و از Unrestricted یا Bypass فقط در محیط توسعه استفاده کنید.
۳. پروفایلها (Profiles)
الف) مفهوم پروفایل
برنامه PowerShell این امکان رو داره که هر بار که محیط اجرا میشه، یک فایل تنظیمات شخصی بارگذاری کنه. این فایل بهش میگیم پروفایل.
پروفایل به ما اجازه میده:
- که Cmdletها یا ماژولهای موردعلاقه رو بارگذاری کنیم.
- متغیرها و توابع شخصی بسازیم.
- ظاهر محیط (Prompt) رو سفارشی کنیم.
ب) مسیر و ایجاد پروفایل
برای دیدن مسیر پروفایل فعلی، دستور زیر رو اجرا میکنیم:
$PROFILE
این مسیر معمولاً چیزی شبیه C:\Users\Username\Documents\PowerShell\Microsoft.PowerShell_profile.ps1 هست.
اگر فایل وجود نداشته باشه، میتونیم ایجادش کنیم:
if (!(Test-Path -Path $PROFILE)) {
New-Item -ItemType File -Path $PROFILE -Force
}
حالا میتونیم هر دستوری که میخوایم به صورت خودکار هنگام شروع PowerShell اجرا بشه، داخل این فایل قرار بدیم.
مثال: فرض کنید میخوایم هر بار PowerShell اجرا میشه، یک پیام خوشآمدگویی نمایش داده بشه و یک ماژول خاص بارگذاری بشه:
Write-Host "Welcome Ali! Ready to code in PowerShell." -ForegroundColor Cyan Import-Module Pester
۴. نکات مهم برای برنامهنویسها
- همیشه Execution Policy مناسب رو تنظیم کنید تا هم امنیت داشته باشید و هم بتونید اسکریپتهای خودتون رو اجرا کنید.
- پروفایلها بهترین جا برای اتوماسیون محیط توسعه هستند. مثلا میتونید متغیرهای مسیر پروژه، توابع کمکی یا Aliasهای شخصی بسازید.
- در محیط کاری و سرورهای شرکت، سیاستهای سازمانی ممکنه محدودیتهای اضافی داشته باشه؛ پس قبل از تغییر Execution Policy، قوانین امنیتی رو بررسی کنید.
🔑 خلاصهی درسنامه:
برنامه PowerShell رو میشه به روشهای مختلف اجرا کرد و اولین چیزی که هر کاربر باید بدونه، Execution Policy هست که مشخص میکنه چه اسکریپتهایی اجازه اجرا دارند. علاوه بر این، پروفایلها امکان شخصیسازی محیط و اجرای اتوماتیک دستورات رو فراهم میکنن. برای برنامهنویسها، استفاده از پروفایلها و تنظیمات مناسب Execution Policy باعث میشه محیط کار سریعتر، امنتر و اتوماتیکتر بشه.