مبانی نحوی PowerShell: دستورات، پارامترها، نام‌های مستعار و بیشتر

PowerShell با تأکید بر سازگاری، قابلیت کشف‌پذیری و توسعه‌پذیری، یکی از ابزارهای قدرتمند مدیریت سیستم در ویندوز است. درک مبانی نحوی آن شامل دستورات، پارامترها، نام‌های مستعار (Aliases)، بلوک‌های اسکریپت و ترفندهای مرتبط برای کارایی بیشتر ضروری است. این مقاله به معرفی انواع دستورات، نحوه استفاده از پارامترها، کاربرد نام‌های مستعار، تکنیک‌های ادامه خط، دستورات پرانتزی و بلوک‌های اسکریپت می‌پردازد.

PowerShell SyntaxCmdletsParametersAliasesScript Blocks

~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 با ساختار منظم و قابلیت‌های متنوع، پایه‌ای برای اسکریپت‌نویسی و مدیریت کارآمد سیستم‌هاست. درک دستورات، پارامترها، نام‌های مستعار و بلوک‌های اسکریپت به مدیران کمک می‌کند وظایف را سریع‌تر و دقیق‌تر انجام دهند.


نوشته و پژوهش شده توسط دکتر شاهین صیامی