مدیریت کارها در PowerShell: اجرای پس‌زمینه، WMI و زمان‌بندی

کارها (Jobs) در PowerShell یکی از نقاط توسعه مهم هستند که امکان اجرای وظایف به‌صورت غیرهمزمان را فراهم می‌کنند. این قابلیت به شما اجازه می‌دهد در حالی که PowerShell در پس‌زمینه مشغول اجرای دستورات است، همچنان به کار خود ادامه دهید. سه نوع اصلی کار در PowerShell v3 معرفی شده‌اند: کارهای مبتنی بر Remoting، کارهای WMI/CIM و کارهای زمان‌بندی‌شده (Scheduled Jobs). هرکدام معماری متفاوتی دارند اما هدف مشترک آن‌ها اجرای وظایف در پس‌زمینه است.

PowerShell JobsStart-Job و Invoke-CommandWMI JobsScheduled Jobs

~2 دقیقه مطالعه • بروزرسانی ۳۰ آذر ۱۴۰۴

1. کارهای مبتنی بر Remoting


  • Start-Job: اجرای کار محلی در پس‌زمینه.
  • Invoke-Command -AsJob: اجرای دستورات روی چندین کامپیوتر به‌صورت همزمان.

هر کار شامل یک والد و چندین کار فرزند است. می‌توان وضعیت کارها را با Get-Job بررسی کرد و نتایج را با Receive-Job دریافت نمود.


2. مدیریت کارها


  • Wait-Job: منتظر ماندن تا پایان کار.
  • Stop-Job: توقف کارهای در حال اجرا.
  • Remove-Job: حذف کارهای تکمیل‌شده.

نتایج کارها به‌طور موقت در حافظه ذخیره می‌شوند و می‌توان آن‌ها را با گزینه -Keep دوباره دریافت کرد.


3. کارهای WMI


با افزودن پارامتر -AsJob به دستورات WMI مانند Get-WmiObject می‌توان آن‌ها را به‌صورت کار پس‌زمینه اجرا کرد. این کارها به‌صورت موازی روی چندین کامپیوتر اجرا می‌شوند و از RPC استفاده می‌کنند.


4. کارهای زمان‌بندی‌شده (Scheduled Jobs)


در PowerShell v3 معرفی شدند و حتی پس از بسته شدن کنسول نیز باقی می‌مانند. این کارها با Task Scheduler ویندوز یکپارچه هستند.


  • Register-ScheduledJob: ایجاد کار زمان‌بندی‌شده.
  • New-JobTrigger: تعریف زمان اجرا (مثلاً روزانه ساعت 3 صبح).
  • New-ScheduledJobOption: تنظیم گزینه‌ها مانند نیاز به شبکه.

نتایج کارهای زمان‌بندی‌شده در پوشه کاربر ذخیره می‌شوند و می‌توان آن‌ها را با Receive-Job دریافت کرد.


5. فرآیندهای پشت‌صحنه


  • Start-Job: ایجاد فرآیند فرزند PowerShell.exe.
  • Invoke-Command -AsJob: اجرا در فرآیند wsmprovhost.exe تحت WSMAN.
  • WMI Jobs: اجرا از طریق RPC با child jobs برای هر کامپیوتر.

نتیجه‌گیری


PowerShell Jobs ابزاری قدرتمند برای اجرای وظایف در پس‌زمینه هستند. با استفاده از کارهای Remoting، WMI و Scheduled Jobs، مدیران می‌توانند وظایف پیچیده را به‌صورت موازی، زمان‌بندی‌شده و کارآمد مدیریت کنند.


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