⚡ خلاصه سریع: پاورشل چیست؟
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 خود را بنویسید!




