ساخت یک فعالیت زمانبندی شده برای Power Shell

پاورشل یک ویژگی عالی برای انجام کارهای تکراری توسط مدیرسیستم می باشد ، برای مثال من همیشه یک سری اسکریپت را با پاورشل به صورت زمانبندی شده انجام میدم و نتایج را به صورت آنلاین چک می کنم (چک کردن آنلاین در مقاله های بعدی توضیح داده می شود).  در مقاله زیر ساخت یک فعالیت زمانبندی شده برای Power Shell به کمک Windows Task Scheduler توضیح داده می شود.

برای اجرای خودکار اسکریپت های پاورشل می توانید از Windows Task Scheduler استفاده کنید ، واما چگونه؟

ساخت تسک از WIZARD :

در این روش شما به صورت دستی تسک مورد نظر می سازید:

ابندا به مسیر زیر در ویندوز سرور بروید

Start >> Administrative Tools >> Task Schedule

از منوی Action  گزینه  “Create a Basic Task” بزنید :

ساخت یک فعالیت زمانبندی شده

سپس نام تسک را مشخص کنید و همین طور شرح آن را :

ساخت یک فعالیت زمانبندی شده

دوره تکرار زمانبندی مورد نظرتان را انتخاب کنید:

ساخت یک فعالیت زمانبندی شده

جزئیات زمانبندی را مشخص کنید:

ساخت یک فعالیت زمانبندی شده

نوع فعالیت را انتخاب کنید:

ساخت یک فعالیت زمانبندی شده

در بخش Program\Scrip  برای اجرای پاورشل آدرس زیر را وارد کنید:

C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe

در بخش Arguments  نیز مسیر فایل اسکریپت که با سوند ps1 ساخته اید بدهید:

 C:\Users\spadmin\Desktop\SitePermission.ps1

ساخت یک فعالیت زمانبندی شده

در بخش بعد تیک Open the Properties dialog for this task when I click Finish را بزنید تا برگه خصوصیات تسک باز شود.

ساخت یک فعالیت زمانبندی شده

دراین قسمت گزینه ها را مطابق شکل تیک بزنید و پس از زدن دکمه Ok در کادر باز شده پسورد اکانت مربوطه را وارد کنید.

ساخت یک فعالیت زمانبندی شده

در صورت تمایل می توانید خصوصیات تسک به وجود آمده را با راست کلیک بر روی تسک و انتخاب گزینه Properties  تغیر بدهید.

اجرای تسک به صورت دستی با توجه به نیاز

در برخی از موارد نیاز دارید تسک ها را زود تر از زمانبندی اجرا کنید برای این کار بر روی تسک مورد نظر کلیک راست کنید و گزینه Run را بزنید.

ساخت یک فعالیت زمانبندی شده

ساخت تسک با CMD

برای ساخت تسک می توانید به جای استفاده از UIویندوز از کپی و پیست کد زیر استفاده کنید.

 schtasks /create /TN “Content Database Report” /SC monthly /mo 1 /ST 00:00 /RU “Domain\UserName” /RP “Password” /RL “HIGHEST” /TR “PowerShell D:\Scripts\ContentDatabaseReport.ps1”

این کد تسک را در حالت Run with highest privileges و نیز Run whether the user is logged on or not

می سازد.

اجرای تسک ها با پارامتر:

فرض کنید که در اسکریپتی که نوشته اید پارمتری به نام “$WebAppURL” دارید که به صورت زیر می باشد:

Param(

       [parameter(Mandatory=$true)] $WebAppURL

     )

 # We’ll trigger the script as:  .\StorageReport “http://sharepoint.crescent.com”

که ما آن را به صورت زیر در پاورشل اجرا می کنیم :

.\Report_permission “http://daryabari.id.ir

در بخش Argument  های تسک باید مشابه عبارت زیر را بنویسم:

C:\\Report_permission “http://daryabari.id.ir

برای زمانی که چند پارامتر در اسکریپت خود دارید مشابه زیر:

Param)

      [parameter(Mandatory=$true)] $WebAppURL,

      [parameter(Mandatory=$true)] $OutPut

(

در بخش Argument باید اسم هر پارمتر در ابتدا و مقدار آن بعد از اسم بیایید مشابه کد زیر :

# We trigger it as: C:\\Report_permission -WebAppURL “http://daryabari.id.ir ” -output “d:\Reports\StorageReport.csv”

ساخت تسک زمانبدی شده با پاورشل

شما همچنین می توانید برای ساخت یک فعالیت زمانبندی شده برای  Power Shell استفاده کنید ، این گزینه از ویندوز سرور  2012 R2 به بعد امکان پذیر می باشد (روش مورد علاقه من).

کافی هست اسکریپت زیر را در بخش متغییر ها با توجه به نیازتان بروز رسانی کنید و آن را در پاورشل ویندوز اجرا کنید.

#متغییر ها که باید تغییر بدهید

$TaskName = “Audit Large Lists”

$username =”Crescent\SP13_FarmAdmin”

$password =”Password Here”

#Create Scheduled Task

$Action = New-ScheduledTaskAction -Execute “PowerShell.exe” -Argument “E:\Scripts\AuditLists.ps1”

$Trigger = New-ScheduledTaskTrigger -Daily -At 1am

$ScheduledTask = New-ScheduledTask -Action $action -Trigger $trigger

Register-ScheduledTask -TaskName $TaskName -InputObject $ScheduledTask -User $username -Password $password

ساخت یک فعالیت زمانبندی شده برای  Power Shell

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *