Task Scheduler عالی است، اما در عوض تنظیم وظایف برنامه ریزی شده در Windows PowerShell مزایای خود را دارد.
اغلب اوقات، زمانی که میخواهید وظایف را در ویندوز زمانبندی کنید، معمولاً ابتدا به ابزار Windows Task Scheduler دسترسی پیدا میکنید. با این حال، می توان از cmdlet های Windows PowerShell برای ایجاد، ویرایش و حذف کارهای برنامه ریزی شده استفاده کرد.
اما چرا باید از PowerShell برای زمان بندی وظایف به جای ابزار تعیین شده Tash Scheduler استفاده کنید؟ بیایید دریابیم.
چرا از PowerShell به جای Task Scheduler استفاده کنیم؟
برای اکثر کاربران ویندوز، استفاده از Task Scheduler برای ایجاد کارهای برنامه ریزی شده ساده آسان تر است. با این حال، دلیل اصلی استفاده از PowerShell به جای Task Scheduler، عمدتاً توانایی ایجاد یک اسکریپت است که از طریق یک کار زمانبندی شده با سیستم تعامل دارد.
Task Scheduler برای مدت طولانی بخشی از ویندوز بوده است و شما می توانید با استفاده از Task Scheduler در راهنمای ما درباره اجرای خودکار برنامه ها اطلاعات بیشتری کسب کنید. این به شما کمک می کند تا بهترین روش را برای ایجاد وظایف برنامه ریزی شده برای نیازهای خاص خود انتخاب کنید.
اسکریپت پاورشل چیست؟
Windows PowerShell یک برنامه اتوماسیون وظایف و مدیریت پیکربندی است. همچنین شامل یک زبان اسکریپت است. اسکریپت های PowerShell که “cmdlets” نامیده می شوند، به شما اجازه می دهند تا عملیات پیچیده و چند عملی ایجاد کنید.
یک اسکریپت PowerShell می تواند برای چیزی به سادگی جمع آوری و ارائه اطلاعات در مورد یک کامپیوتر استفاده شود. یک مدیر شبکه می تواند اسکریپتی ایجاد کند که تمام رایانه های موجود در شبکه ای را که استفاده نمی شود خاموش می کند.
اسکریپت ها معمولاً توسط مدیران سیستم و شبکه استفاده می شوند، اما این بدان معنا نیست که نمی توانید اسکریپت های PowerShell را برای انجام اقدامات ساده و پیچیده در رایانه شخصی خود ایجاد کنید. در واقع، تعداد زیادی اسکریپت ساده ویندوز وجود دارد که به راحتی تنظیم می شوند، اما عملکردهای زیادی را ارائه می دهند.
ایجاد یک کار زمان بندی شده در PowerShell (Elevated)
هنگامی که می خواهید کارهای برنامه ریزی شده ایجاد کنید، باید PowerShell را با امتیازات مدیر باز کنید. اگر نمی دانید چگونه این کار را انجام دهید، حتماً درباره شروع برنامه هایی با امتیازات بالا اطلاعات بیشتری کسب کنید.
برای باز کردن PowerShell، روی دکمه Start Menu راست کلیک کرده و PowerShell (Admin) را از منوی power user انتخاب کنید. اگر آن گزینه را نمی بینید، PowerShell را در جستجوی ویندوز جستجو کنید و Run as Administrator را انتخاب کنید.
شما باید یک متغیر ایجاد کنید که شامل اکشن وظیفه باشد. برای انجام این کار، تایپ کنید: $action = New-ScheduledTaskAction -Execute ‘PROGRAM’ و Enter را فشار دهید. به جای PROGRAM نام برنامه ای را که کار را برای آن ایجاد می کنید جایگزین کنید.
نام متغیر در دستور بالا قسمت $action است. شما می توانید این را به هر چیزی که می خواهید تغییر دهید، اما بهتر است آن را کوتاه و توصیفی نگه دارید. همچنین باید با حروف کوچک باشد.
در مرحله بعد، ماشه را برای کار برنامه ریزی شده ایجاد کنید. این شامل زمان و فرکانس تکرار خواهد بود. برای افزودن یک ماشه، تایپ کنید: $trigger = New-ScheduledTaskTrigger -SETTING -At TIME. -SETTING را با فرکانس جایگزین کنید، مانند روزانه. -At TIME را با یک زمان، مانند “در ساعت 7 صبح” جایگزین کنید.
برای فرکانس می توانید از یک بار، روزانه، هفتگی یا ماهانه استفاده کنید. زمان می تواند در قالب 12 یا 24 ساعته باشد. اگر از فرکانس Weekly استفاده می کنید، می توانید -DaysOfWeek و سپس روز را نیز اضافه کنید. برای مثال سه شنبه. همچنین می توانید از -DaysInterval برای کنترل فرکانس استفاده کنید. به عنوان مثال، -DaysInterval 3، وظیفه را هر سه روز یکبار اجرا می کند.
اکنون باید تمام اطلاعات را در یک دستور واحد قرار دهید. در خط فرمان زیر، TASK-FOLDER، TASK-NAME و OPTIONAL-DESCRIPTION-TEXT را با اطلاعات وظیفه خود جایگزین کنید. -TaskPath اختیاری است اما به شما کمک می کند تا وظایف ایجاد شده خود را شناسایی کنید.
برای ایجاد کار برنامه ریزی شده، تایپ کنید: Register-ScheduledTask -Action $action -Trigger $trigger -TaskPath “TASK-FOLDER” -TaskName “TASK-NAME” -شرح “OPTIONAL-DESCRIPTION-TEXT”. Enter را فشار دهید.
سپس کار برنامه ریزی شده ایجاد می شود و با رسیدن به فرکانس و زمان فعال می شود.
تغییر یک کار زمان بندی شده در PowerShell (بالا)
همچنین میتوانید از PowerShell برای اصلاح یک کار زمانبندی شده که قبلاً ایجاد شده است استفاده کنید. شما می توانید یک کار زمان بندی شده را ویرایش کنید حتی اگر در حال حاضر فعال باشد. شما باید نام وظیفه برنامه ریزی شده و مسیر کار را بدانید.
با جستجو در Windows Search و کلیک کردن روی Run as Administrator، PowerShell را با امتیازات مدیر باز کنید.
شما باید یک متغیر ایجاد کنید تا تغییرات کار برنامه ریزی شده را نگه دارد. نوع: $trigger = New-ScheduledTaskTrigger -SETTING -At TIME. -SETTING و -At TIME را به فرکانس و زمانی که می خواهید برای کار تنظیم کنید تغییر دهید.
برای تغییر برنامه ای که کار برنامه ریزی شده استفاده می کند، تایپ کنید: $action = New-ScheduledTaskAction -Execute ‘PROGRAM’. به جای PROGRAM در دستور، نام برنامه مورد نظر را به همراه مسیر فایل exe قرار دهید.
سپس، با تایپ کردن: Set-ScheduledTask -Trigger $trigger -Action $action -TaskPath “TASK-FOLDER” -TaskName “TASK-NAME”، آن تغییرات را در کار زمانبندیشده اعمال کنید. TASK-FOLDER و TASK-NAME را با جزئیات کاری که می خواهید تغییر دهید جایگزین کنید.
نحوه حذف وظایف برنامه ریزی شده در PowerShell
کارهای برنامه ریزی شده ایجاد شده در PowerShell نیز می توانند در PowerShell حذف شوند.
PowerShell (Elevated) را باز کنید و دستور زیر را برای تأیید وجود و فعال بودن کار تایپ کنید: Get-ScheduledTask -TaskName “TASK-NAME”. TASK-NAME را با نام کاری که می خواهید حذف کنید جایگزین کنید.
با فرض یافتن کار برنامه ریزی شده، می توانید آن را با دستور زیر حذف کنید: Unregister-ScheduledTask -TaskName “TASK-NAME” -Confirm:$false. TASK-NAME را با نام کاری که می خواهید حذف کنید جایگزین کنید.
برای تأیید اینکه کار حذف شده است، تایپ کنید: Get-ScheduledTask -TaskName “TASK-NAME”، و به جای TASK-NAME نام کار برنامه ریزی شده ای را که حذف کردید جایگزین کنید.
سپس باید اخطاری را ببینید که هیچ وظیفه ای با آن نام وجود ندارد. اگر جزئیات کار زمانبندی شده را مشاهده کردید، به درستی حذف نشده است. جزئیاتی را که در مرحله 1 در بالا وارد کردید بررسی کنید.
Cmdlet های PowerShell اضافی برای کارهای زمان بندی شده
اکنون اصول ایجاد وظایف برنامه ریزی شده در PowerShell را درک کرده اید، می توانید با cmdlet های دیگر آزمایش کنید.
چندین راه دیگر برای کنترل وظایف برنامه ریزی شده با خطوط فرمان وجود دارد. اینها شامل غیرفعال کردن موقت وظایف، صدور یک کار زمانبندی شده بهعنوان رشته XML و توقف همه وظایف در حال اجرا است.
میتوانید فهرست کاملی از تمام cmdletهای وظیفه برنامهریزیشده PowerShell را در Microsoft Docs پیدا کنید.
ایجاد وظایف برنامه ریزی شده در Windows PowerShell
همه نیازی به استفاده از PowerShell برای ایجاد وظایف برنامه ریزی شده ندارند. Task Scheduler کار خوبی انجام می دهد و به شما امکان می دهد کارهای ساده ای مانند باز کردن برنامه ها را برنامه ریزی کنید. اما اگر نیاز دارید که بدانید چگونه کارهای برنامه ریزی شده را در PowerShell، ابزار قدرتمند اتوماسیون ویندوز، ایجاد کنید، این راهنما مکانی عالی برای شروع است.