~2 دقیقه مطالعه • بروزرسانی ۳۰ آذر ۱۴۰۴
1. درک دستورات در PowerShell
- Cmdlets داخلی: دستورات ساختهشده در .NET مانند C# که هسته اصلی PowerShell هستند.
- توابع: دستورات اسکریپتی قابل تعریف توسط کاربر.
- Cmdlets پویا از WMI: تولیدشده از کلاسهای WMI.
- دستورات خارجی: برنامههای قدیمی مانند ping.exe.
نام Cmdletها بر اساس الگوی فعل-اسم است، مانند Get-Service یا New-ADUser.
2. نامهای مستعار (Aliases)
نامهای مستعار میانبرهایی برای دستورات هستند، مانند dir یا ls برای Get-ChildItem. توصیه میشود در اسکریپتها از نام کامل استفاده شود تا خوانایی و قابلیت حمل حفظ گردد.
3. پارامترها
پارامترها رفتار دستورات را مشخص میکنند. ساختار آنها به صورت -Name Value است. مثال:
New-ADUser -Name "JohnDoe" -GivenName "John" -Surname "Doe" -Description "New Employee"
ویژگیها:
- مقادیر رشتهای با فاصله نیازمند کوتیشن هستند.
- میتوان از Tab برای تکمیل خودکار استفاده کرد.
- در اسکریپتها بهتر است نام کامل پارامترها نوشته شود.
4. ترفندهای ادامه خط
دستورات طولانی را میتوان در چند خط نوشت. PowerShell در صورت ناقص بودن ساختار (مانند پرانتز یا کوتیشن باز) ادامه خط را با >> نشان میدهد.
Get-Service -Name B*, A*, C* |
Where-Object { $_.Status -eq 'Running' } |
Sort-Object Status
5. دستورات پرانتزی
پرانتزها برای اجرای ابتدا استفاده میشوند. مثال:
Get-Process -ComputerName (Get-Content names.txt)
ابتدا Get-Content اجرا شده و خروجی آن به عنوان ورودی Get-Process استفاده میشود.
6. بلوکهای اسکریپت
بلوکهای اسکریپت با {} چند دستور را در یک واحد گروهبندی میکنند. مثال:
$sb = {
Get-WmiObject -Class Win32_OperatingSystem
Get-WmiObject -Class Win32_ComputerSystem
}
& $sb
این بلوکها در سناریوهای پیشرفته مانند Remoting و Workflow کاربرد دارند.
نتیجهگیری
PowerShell Syntax با ساختار منظم و قابلیتهای متنوع، پایهای برای اسکریپتنویسی و مدیریت کارآمد سیستمهاست. درک دستورات، پارامترها، نامهای مستعار و بلوکهای اسکریپت به مدیران کمک میکند وظایف را سریعتر و دقیقتر انجام دهند.
نوشته و پژوهش شده توسط دکتر شاهین صیامی