~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، مدیران میتوانند وظایف پیچیده را بهصورت موازی، زمانبندیشده و کارآمد مدیریت کنند.
نوشته و پژوهش شده توسط دکتر شاهین صیامی