خانه بهینه سازی و سئو powershell چیست؟ آموزش فعالسازی پاورشل
تاریخ به‌روزرسانی : 1402/09/22
به قلم : شهاب بیرامی
زمان مطالعه : 7 دقیقه

⚡ خلاصه سریع: پاورشل چیست؟

PowerShell یک پوسته خط فرمان و زبان اسکریپت‌نویسی مدرن از مایکروسافت است که برای اتوماسیون وظایف، مدیریت سیستم و پیکربندی سرورها استفاده می‌شود. نسخه PowerShell 7.5 (آخرین نسخه پایدار در ۲۰۲۶) بر پایه .NET 9 ساخته شده و روی Windows، Linux و macOS اجرا می‌شود. یادگیری PowerShell برای مدیران سیستم، DevOps و متخصصان امنیت یک مهارت ضروری محسوب می‌شود.

اگر با مدیریت سرور، اتوماسیون IT یا DevOps سر و کار دارید، حتماً نام PowerShell به گوشتان خورده است. این ابزار قدرتمند که در سال ۲۰۰۶ توسط مایکروسافت معرفی شد، امروزه به یکی از مهم‌ترین ابزارهای مدیریت زیرساخت در دنیای فناوری تبدیل شده است.

در این راهنمای جامع، از صفر تا صد با PowerShell آشنا می‌شوید: از تعریف و تاریخچه گرفته تا نصب، دستورات کاربردی و بهترین روش‌های استفاده در سال ۲۰۲۶.

پاورشل (PowerShell) چیست؟

PowerShell یک محیط خط فرمان (Command-Line Shell) و زبان اسکریپت‌نویسی است که توسط مایکروسافت توسعه یافته است. برخلاف خط فرمان سنتی ویندوز (CMD) که با رشته‌های متنی کار می‌کند، PowerShell با اشیاء (Objects) سر و کار دارد و این ویژگی قدرت و انعطاف‌پذیری بسیار بالایی به آن می‌دهد.

تفاوت PowerShell با CMD

ویژگی CMD (Command Prompt) PowerShell
نوع خروجی متن ساده اشیاء .NET
قابلیت اسکریپت‌نویسی محدود (Batch files) کامل و پیشرفته
پشتیبانی از سیستم‌عامل فقط ویندوز ویندوز، لینوکس، macOS
مدیریت از راه دور ندارد PowerShell Remoting
دسترسی به APIها محدود کامل (REST، Azure، AWS...)

تاریخچه PowerShell

PowerShell در سال ۲۰۰۶ با نام رمز Monad معرفی شد. Jeffrey Snover، معمار اصلی PowerShell، این پروژه را با هدف ایجاد یک محیط مدیریتی قدرتمند برای ویندوز طراحی کرد.

نسخه‌های مهم PowerShell

  • PowerShell 1.0 (۲۰۰۶): نسخه اولیه برای Windows XP و Server 2003
  • PowerShell 2.0 (۲۰۰۹): اضافه شدن Remoting و ISE
  • PowerShell 3.0 (۲۰۱۲): Workflow و بهبود عملکرد
  • PowerShell 5.1 (۲۰۱۶): آخرین نسخه Windows PowerShell
  • PowerShell Core 6.0 (۲۰۱۸): نسخه Cross-Platform بر پایه .NET Core
  • PowerShell 7.0 (۲۰۲۰): جایگزین نسخه‌های قبلی
  • PowerShell 7.4 (۲۰۲۳): پشتیبانی از .NET 8
  • PowerShell 7.5 (۲۰۲۵): آخرین نسخه پایدار بر پایه .NET 9

نصب PowerShell در سیستم‌عامل‌های مختلف

نصب در ویندوز

در ویندوز ۱۰ و ۱۱، PowerShell 5.1 به صورت پیش‌فرض نصب است. برای نصب PowerShell 7.5:

# استفاده از winget (توصیه شده)
winget install Microsoft.PowerShell

# یا دانلود مستقیم از GitHub
# https://github.com/PowerShell/PowerShell/releases

نصب در لینوکس (Ubuntu/Debian)

# به‌روزرسانی لیست پکیج‌ها
sudo apt-get update

# نصب پیش‌نیازها
sudo apt-get install -y wget apt-transport-https

# دانلود کلید مخزن مایکروسافت
wget -q https://packages.microsoft.com/config/ubuntu/22.04/packages-microsoft-prod.deb

# نصب پکیج
sudo dpkg -i packages-microsoft-prod.deb

# نصب PowerShell
sudo apt-get update
sudo apt-get install -y powershell

# اجرای PowerShell
pwsh

نصب در macOS

# استفاده از Homebrew
brew install powershell/tap/powershell

# اجرا
pwsh

دستورات پایه PowerShell

دستورات در PowerShell به نام Cmdlet (خوانده می‌شود: Command-let) شناخته می‌شوند. این دستورات از ساختار فعل-اسم (Verb-Noun) پیروی می‌کنند.

دستورات ضروری برای شروع

دستور توضیح مثال
Get-Help نمایش راهنما Get-Help Get-Process
Get-Command لیست تمام دستورات Get-Command *service*
Get-Process لیست پروسس‌ها Get-Process | Sort-Object CPU
Get-Service لیست سرویس‌ها Get-Service | Where-Object Status -eq Running
Get-ChildItem لیست فایل‌ها (مشابه ls/dir) Get-ChildItem -Recurse *.log
Set-Location تغییر دایرکتوری (cd) Set-Location C:\Users
Copy-Item کپی فایل/پوشه Copy-Item file.txt backup/
Remove-Item حذف فایل/پوشه Remove-Item *.tmp -Recurse

پایپ‌لاین (Pipeline) در PowerShell

یکی از قدرتمندترین ویژگی‌های PowerShell، پایپ‌لاین است. با استفاده از کاراکتر | می‌توانید خروجی یک دستور را به ورودی دستور بعدی منتقل کنید.

# یافتن ۱۰ پروسس با بیشترین مصرف CPU
Get-Process | Sort-Object CPU -Descending | Select-Object -First 10

# یافتن سرویس‌های متوقف‌شده
Get-Service | Where-Object {$_.Status -eq 'Stopped'} | Select-Object Name, Status

# صدور لیست فایل‌ها به CSV
Get-ChildItem -Recurse | Export-Csv files.csv -NoTypeInformation

اسکریپت‌نویسی با PowerShell

فایل‌های اسکریپت PowerShell با پسوند .ps1 ذخیره می‌شوند. این اسکریپت‌ها می‌توانند شامل متغیرها، حلقه‌ها، شرط‌ها و توابع باشند.

مثال: اسکریپت پشتیبان‌گیری

# backup-script.ps1
param(
    [string]$SourcePath = "C:\Data",
    [string]$BackupPath = "D:\Backup"
)

$timestamp = Get-Date -Format "yyyy-MM-dd_HH-mm"
$backupFolder = Join-Path $BackupPath "backup_$timestamp"

# ایجاد پوشه پشتیبان
New-Item -ItemType Directory -Path $backupFolder -Force

# کپی فایل‌ها
Copy-Item -Path "$SourcePath\*" -Destination $backupFolder -Recurse

# نمایش گزارش
$fileCount = (Get-ChildItem $backupFolder -Recurse -File).Count
Write-Host "پشتیبان‌گیری کامل شد: $fileCount فایل کپی شد" -ForegroundColor Green

کاربردهای PowerShell در دنیای واقعی

۱. مدیریت Active Directory

# لیست کاربران غیرفعال (۹۰ روز)
$date = (Get-Date).AddDays(-90)
Get-ADUser -Filter {LastLogonDate -lt $date} -Properties LastLogonDate |
    Select-Object Name, LastLogonDate

۲. مدیریت Azure

# اتصال به Azure
Connect-AzAccount

# لیست ماشین‌های مجازی
Get-AzVM | Select-Object Name, ResourceGroupName, Location

۳. اتوماسیون DevOps

# ری‌استارت سرویس و ارسال ایمیل
$service = Get-Service "MyApp"
if ($service.Status -ne 'Running') {
    Restart-Service "MyApp"
    Send-MailMessage -To "admin@company.com" -Subject "سرویس ری‌استارت شد"
}

امنیت در PowerShell

سیاست اجرا (Execution Policy)

PowerShell دارای سیاست‌های اجرایی برای محافظت در برابر اسکریپت‌های مخرب است:

  • Restricted: اجرای هیچ اسکریپتی مجاز نیست (پیش‌فرض)
  • RemoteSigned: اسکریپت‌های دانلودشده باید امضا داشته باشند
  • AllSigned: همه اسکریپت‌ها باید امضای دیجیتال داشته باشند
  • Unrestricted: همه اسکریپت‌ها اجرا می‌شوند (توصیه نمی‌شود)
# مشاهده سیاست فعلی
Get-ExecutionPolicy

# تنظیم سیاست (نیاز به دسترسی Administrator)
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser

منابع یادگیری PowerShell

  • مستندات رسمی مایکروسافت: docs.microsoft.com/powershell
  • PowerShell Gallery: مخزن ماژول‌های آماده (powershellgallery.com)
  • دوره Microsoft Learn: مسیر یادگیری رایگان PowerShell
  • کتاب: "Learn PowerShell in a Month of Lunches" - Don Jones

🖥️ نیاز به سرور برای تمرین PowerShell دارید؟

با سرور مجازی ویندوز برتینا، محیط اختصاصی برای یادگیری و اجرای اسکریپت‌های PowerShell در اختیار داشته باشید.

سرور مجازی ویندوز
سرور اختصاصی

سوالات متداول درباره PowerShell

آیا PowerShell فقط روی ویندوز کار می‌کند؟

خیر. از نسخه PowerShell Core 6.0 (۲۰۱۸) به بعد، PowerShell روی ویندوز، لینوکس و macOS قابل اجرا است. نسخه فعلی (PowerShell 7.5) یک ابزار کاملاً Cross-Platform محسوب می‌شود.

تفاوت Windows PowerShell و PowerShell 7 چیست؟

Windows PowerShell 5.1 بر پایه .NET Framework است و فقط روی ویندوز کار می‌کند. PowerShell 7.x بر پایه .NET Core/.NET 9 است، Cross-Platform است و ویژگی‌های جدیدتری دارد. توصیه می‌شود از PowerShell 7 استفاده کنید.

چگونه PowerShell را یاد بگیرم؟

بهترین روش شروع: ۱) مستندات رسمی Microsoft Learn، ۲) تمرین روزانه با دستورات پایه، ۳) نوشتن اسکریپت‌های کوچک برای اتوماسیون کارهای روزمره، ۴) مطالعه کتاب "Learn PowerShell in a Month of Lunches".

آیا یادگیری PowerShell برای مدیران شبکه ضروری است؟

بله، قطعاً. PowerShell امروزه مهارت ضروری برای مدیران سیستم، متخصصان شبکه، DevOps Engineers و حتی تحلیلگران امنیت است. اکثر ابزارهای مدیریتی مایکروسافت (Azure، Microsoft 365، Exchange) از PowerShell پشتیبانی می‌کنند.

آخرین نسخه PowerShell در سال ۲۰۲۶ کدام است؟

آخرین نسخه پایدار PowerShell 7.5 است که بر پایه .NET 9 ساخته شده و از نوامبر ۲۰۲۵ منتشر شده است. این نسخه شامل بهبودهای عملکردی، امنیتی و پشتیبانی از ویژگی‌های جدید .NET 9 است.

جمع‌بندی

PowerShell یک ابزار ضروری برای هر متخصص IT در سال ۲۰۲۶ است. از مدیریت ساده فایل‌ها گرفته تا اتوماسیون پیچیده زیرساخت‌های ابری، PowerShell توانایی‌های گسترده‌ای را در اختیار شما قرار می‌دهد.

با یادگیری PowerShell، می‌توانید:

  • کارهای تکراری را اتوماسیون کنید
  • زیرساخت‌های ویندوزی و ابری را مدیریت کنید
  • در حوزه DevOps و SRE پیشرفت کنید
  • امنیت سیستم‌ها را بهبود دهید

همین امروز شروع کنید و اولین اسکریپت PowerShell خود را بنویسید!

نظرات