🛠️ آموزش جامع PowerShell ویندوز | اتوماسیون پیشرفته، مدیریت سیستم و نکات امنیتی
مقدمه
PowerShell ستون فقرات اتوماسیون در ویندوز است. برخلاف Command Prompt که متنمحور است، PowerShell خروجیها را بهصورت شیءهای .NET مدیریت میکند و همین آن را برای مدیریت سیستم، اسکریپتنویسی و عملیات تکراری فوقالعاده قدرتمند میسازد. اگر یک کار را بیش از یک بار انجام میدهید، احتمالاً باید آن را در PowerShell خودکار کنید. این مقاله از مبانی تا نکات پیشرفته را پوشش میدهد تا بتوانید با اطمینان از PowerShell در پروژههای واقعی استفاده کنید.
شروع کار با PowerShell
- محیط اجرا: Windows Terminal یا خود PowerShell
- نسخهها: PowerShell کلاسیک و PowerShell 7
- سطح دسترسی: اجرای Run as Administrator برای برخی دستورات
- کمک درونساخت:
Get-Help
،Get-Command
،Get-Member
نمونه:
Get-Help Get-Service -Examples
Get-Command *service*
"Hello" | Get-Member
مفاهیم بنیادی
- Cmdlet: ساختار Verb-Noun مانند
Get-Process
- خط لوله شیءگرا: عبور خروجی بهصورت شیء به دستور بعدی
- Provider: دسترسی یکنواخت به منابع مثل رجیستری
- ماژولها: افزودن قابلیتهای جدید
نمونه:
Get-Process |
Where-Object CPU -gt 50 |
Sort-Object CPU -Descending |
Select-Object -First 5 Name, CPU, Id
مدیریت فایل و سیستم
- جستوجو و فیلتر فایلها
- محاسبه حجم کل
- حذف خودکار فایلهای قدیمی
- فشردهسازی پوشهها به ZIP
نمونه:
Get-ChildItem C:\Logs -Recurse -File |
Where-Object LastWriteTime -lt (Get-Date).AddDays(-30) |
Remove-Item -Force
مدیریت پردازشها و سرویسها
- شناسایی پردازشهای پرمصرف
- توقف یا ریاستارت سرویسها
نمونه:
Restart-Service -Name Spooler -Force
کار با رجیستری
- خواندن و نوشتن کلیدها
- پشتیبانگیری از رجیستری
نمونه:
Get-ItemProperty "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion"
شبکه و فایروال
- تست اتصال با
Test-NetConnection
- افزودن قوانین فایروال
مدیریت رخدادها
- استفاده از
Get-WinEvent
برای جستوجوی لاگها - فیلتر و خروجی به CSV
ماژولها و مدیریت بسته
- نصب ماژول با
Install-Module
- لیست ماژولهای نصبشده
پروفایل و شخصیسازی
- تعریف توابع و الیاسها
- استفاده از PSReadLine برای تکمیل خودکار
امنیت اجرا
- تنظیم Execution Policy روی RemoteSigned
- امضای دیجیتال اسکریپتها
اجرای راه دور
- فعالسازی PSRemoting
- اجرای دستور روی چند سرور
بهروزرسانیهای ویندوز
- کنترل دانلود و نصب آپدیتها با PSWindowsUpdate
زمانبندی وظایف
- استفاده از ScheduledTasks برای اجرای اسکریپتها بهصورت خودکار
کنترل خطا
- استفاده از Try/Catch
- ثبت خطاها در لاگ
اشکالزدایی
- کار با VS Code و PSScriptAnalyzer
- تست واحد با Pester
نکات امنیتی
- اصل حداقل دسترسی
- استفاده از SecretManagement
- فعالسازی لاگهای PowerShell
سناریوی نمونه بکاپ روزانه
- فشردهسازی دادهها
- حذف آرشیوهای قدیمیتر از ۳۰ روز
- ثبت گزارش در فایل لاگ
نمونه:
Compress-Archive -Path C:\Data -DestinationPath D:\Backups\data.zip -Force
منابع معتبر
نتیجهگیری
PowerShell پلی بین کارهای تکراری و اتوماسیون هوشمند است. با یادگیری آن، میتوانید کنترل کامل بر ویندوز داشته باشید، از مدیریت فایل و سرویسها گرفته تا شبکه، امنیت و بهروزرسانیها.