বেশিরভাগ ব্যবহারকারী এবং প্রশাসক taskschd.msc
ব্যবহার করেন গ্রাফিকাল ইন্টারফেস কনসোল উইন্ডোজে নির্ধারিত কাজগুলি তৈরি এবং পরিচালনা করতে। যাইহোক, বিভিন্ন স্ক্রিপ্ট এবং স্বয়ংক্রিয় প্রবাহে, নির্ধারিত কাজগুলি তৈরি করতে পাওয়ারশেল বৈশিষ্ট্যগুলি ব্যবহার করা অনেক বেশি সুবিধাজনক। এই প্রবন্ধে, আমরা দেখাব কিভাবে PowerShell ব্যবহার করে উইন্ডোজ শিডিউলার টাস্ক তৈরি ও পরিচালনা করতে হয়।
Windows এ PowerShell এর মাধ্যমে নির্ধারিত কাজগুলি পরিচালনা করা
নির্ধারিত কাজগুলি৷ PowerShell মডিউলটি Windows 10/Windows সার্ভার 2016-এ নির্ধারিত কাজগুলি পরিচালনা করতে ব্যবহৃত হয়। আপনি নিম্নরূপ একটি মডিউলে cmdlets তালিকা করতে পারেন:
Get-Command -Module ScheduledTasks
- অক্ষম-নির্ধারিত টাস্ক
- সক্রিয়-নির্ধারিত টাস্ক
- রপ্তানি-নির্ধারিত টাস্ক
- Get-ClusteredScheduledTask
- গেট-শিডিউলড টাস্ক
- Get-ScheduledTaskInfo
- নতুন-নির্ধারিত টাস্ক
- নতুন-নির্ধারিত টাস্ক অ্যাকশন
- নতুন-নির্ধারিত টাস্কপ্রিন্সিপাল
- নতুন-নির্ধারিত টাস্ক সেটিংস সেট
- নতুন-নির্ধারিত টাস্কট্রিগার
- রেজিস্টার-ক্লাস্টার করা নির্ধারিত টাস্ক
- রেজিস্টার-নির্ধারিত টাস্ক
- Set-ClusteredScheduled Task
- সেট-নির্ধারিত টাস্ক
- শুরু-নির্ধারিত টাস্ক
- স্টপ-শিডিউলড টাস্ক
- অনিবন্ধন-ক্লাস্টার করা নির্ধারিত টাস্ক
- অনিবন্ধন-নির্ধারিত টাস্ক
ইঙ্গিত . পূর্বে, বিল্ট-ইন কনসোল টুল
schtasks.exe
শিডিউলারের কাজ তৈরি এবং পরিচালনা করতে উইন্ডোজে ব্যবহৃত হয়েছিল। Windows PowerShell দিয়ে নির্ধারিত কাজ তৈরি করা
PowerShell-এর আধুনিক সংস্করণে (Windows Server 2012/Windows 8-এ PowerShell 3.0 দিয়ে শুরু), আপনি New-ScheduledTaskTrigger ব্যবহার করতে পারেন এবং নিবন্ধন-নির্ধারিত টাস্ক cmdlets নির্ধারিত কাজ তৈরি করতে।
ধরুন, আমাদের একটি নির্ধারিত কাজ তৈরি করতে হবে যা স্টার্টআপের সময় (বা একটি নির্দিষ্ট সময়ে) চালানো উচিত এবং কিছু পাওয়ারশেল স্ক্রিপ্ট বা কমান্ড চালাতে হবে। আসুন StartupScript1 নামে একটি নির্ধারিত কাজ তৈরি করি। এই টাস্কটি পাওয়ারশেল স্ক্রিপ্ট ফাইল C:\PS\StartupScript.ps1 চালাতে হবে প্রতিদিন সকাল 10:00 এ। SYSTEM অ্যাকাউন্টের অধীনে এলিভেটেড প্রিভিলেজ (চেকবক্স "সর্বোচ্চ সুবিধা সহ চালান") সহ কাজটি সম্পাদিত হবে৷
$Trigger= New-ScheduledTaskTrigger -At 10:00am -Daily
$User= "NT AUTHORITY\SYSTEM"
$Action= New-ScheduledTaskAction -Execute "PowerShell.exe" -Argument "C:\PS\StartupScript1.ps1"
Register-ScheduledTask -TaskName "StartupScript1" -Trigger $Trigger -User $User -Action $Action -RunLevel Highest –Force
যদি টাস্কটি সফলভাবে তৈরি করা হয়, তাহলে "রেডি" স্ট্যাটাস দেখা যাবে।
আপনার পাওয়ারশেল স্ক্রিপ্ট নির্দিষ্ট সময়সূচীতে চলবে। যদি আপনার কম্পিউটারে একটি PowerShell এক্সিকিউশন নীতি সক্রিয় থাকে যা PS1 স্ক্রিপ্টগুলিকে কার্যকর হতে বাধা দেয়, তাহলে আপনি –Bypass
এর সাথে একটি নির্ধারিত কাজ থেকে একটি PowerShell স্ক্রিপ্ট চালাতে পারেন। প্যারামিটার।
একটি নতুন টাস্ক তৈরি করার সময় এই কোডটি ব্যবহার করুন:
$Action= New-ScheduledTaskAction -Execute "PowerShell.exe" -Argument “-NoProfile -NoLogo -NonInteractive -ExecutionPolicy Bypass -File C:\PS\StartupScript.ps1"
$Trigger= New-ScheduledTaskTrigger -AtStartup
যদি আপনি একটি টাস্ক চালাতে চান যখন একজন ব্যবহারকারী লগ ইন করেন:
$Trigger= New-ScheduledTaskTrigger -AtLogon
taskschd.msc
খুলুন কনসোল করুন এবং নিশ্চিত করুন যে আপনার টাস্ক শিডিউলার লাইব্রেরিতে একটি নতুন শিডিউলার টাস্ক রয়েছে৷
Powershell 2.0 (Windows 7, Windows Server 2008 R2) এ, PowerShell থেকে একটি নির্ধারিত কাজ তৈরি করতে আপনি Schedule.Service ব্যবহার করতে পারেন COM ইন্টারফেস (বা পাওয়ারশেল সংস্করণ আপডেট করুন)। এই উদাহরণে, আমরা একটি নির্ধারিত কাজ তৈরি করি যা স্টার্টআপের সময় PowerShell স্ক্রিপ্ট ধারণকারী নির্দিষ্ট ফাইলটি কার্যকর করবে। কাজটি
NT AUTHORITY\SYSTEM
দিয়ে করা হয় বিশেষাধিকার।
$TaskName = "NewPsTask"
$TaskDescription = "Running PowerShell script from Task Scheduler"
$TaskCommand = "c:\windows\system32\WindowsPowerShell\v1.0\powershell.exe"
$TaskScript = "C:\PS\StartupScript.ps1"
$TaskArg = "-WindowStyle Hidden -NonInteractive -Executionpolicy unrestricted -file $TaskScript"
$TaskStartTime = [datetime]::Now.AddMinutes(1)
$service = new-object -ComObject("Schedule.Service")
$service.Connect()
$rootFolder = $service.GetFolder("\")
$TaskDefinition = $service.NewTask(0)
$TaskDefinition.RegistrationInfo.Description = "$TaskDescription"
$TaskDefinition.Settings.Enabled = $true
$TaskDefinition.Settings.AllowDemandStart = $true
$triggers = $TaskDefinition.Triggers
#https://msdn.microsoft.com/en-us/library/windows/desktop/aa383915(v=vs.85).aspx
$trigger = $triggers.Create(8)
কিভাবে PowerShell এর মাধ্যমে নির্ধারিত কাজগুলি দেখতে এবং চালাতে হয়?
আপনি কমান্ডের সাহায্যে উইন্ডোজে সমস্ত সক্রিয় নির্ধারিত কাজ তালিকাভুক্ত করতে পারেন:
Get-ScheduledTask -TaskPath | ? state -ne Disabled
একটি নির্দিষ্ট কাজ সম্পর্কে তথ্য পেতে:
Get-ScheduledTask CheckServiceState| Get-ScheduledTaskInfo
LastRunTime :4/7/2021 10:00:00 AMLastTaskResult :267011NextRunTime :4/8/2021 10:00:00 AMNumberOfMissedRuns :0TaskName :TaskService:CheckService:
আপনি এই কাজটি নিষ্ক্রিয় করতে পারেন:
Get-ScheduledTask CheckServiceState | Disable-ScheduledTask
একটি টাস্ক সক্ষম করতে:
Get-ScheduledTask CheckServiceState | Enable-ScheduledTask
কাজটি অবিলম্বে চালানোর জন্য (শিডিউলের জন্য অপেক্ষা না করে), চালান:
Start-ScheduledTask CheckServiceState
টাস্ক শিডিউলার লাইব্রেরি থেকে একটি টাস্ক সম্পূর্ণরূপে অপসারণ করতে:
Unregister-ScheduledTask -TaskName CheckServiceState
আপনি যদি ব্যবহারকারীর নাম পরিবর্তন করতে চান যেখান থেকে টাস্কটি চালু করা হয়েছে এবং, উদাহরণস্বরূপ, সামঞ্জস্য মোড, তাহলে Set-ScheduledTask ব্যবহার করুন cmdlet:
$task_user = New-ScheduledTaskPrincipal -UserId woshub\j.abrams' -RunLevel Highest
$task_settings = New-ScheduledTaskSettingsSet -Compatibility 'Win8'
Set-ScheduledTask -TaskName CheckServiceState_PS -Principal $task_user -Settings $task_settingsআপনি যদি ত্রুটি পান “
৷Set-ScheduledTask: No mapping between account names and security IDs was done
আপনি সঠিক ব্যবহারকারীর নাম দিয়েছেন কিনা তা পরীক্ষা করুন৷
এক্সএমএল ফাইলের মাধ্যমে কীভাবে নির্ধারিত কাজগুলি রপ্তানি এবং আমদানি করবেন?
PowerShell আপনাকে একটি পাঠ্য XML ফাইলে যেকোনো নির্ধারিত কাজের বর্তমান সেটিংস রপ্তানি করতে দেয়। সুতরাং আপনি যেকোন টাস্কের প্যারামিটার রপ্তানি করতে পারেন এবং অন্য কম্পিউটারে একটি টাস্ক স্থাপন করতে পারেন। টাস্ক শিডিউলার GUI এবং PowerShell কনসোল থেকে উভয়ই টাস্ক এক্সপোর্ট করা যেতে পারে।
StartupScript.xml ফাইলে StartupScript নামের টাস্কটি এক্সপোর্ট করার কমান্ড এখানে রয়েছে:
Export-ScheduledTask StartupScript | out-file c:\tmp\StartupScript.xml
PowerShell 2.0-এ Export-ScheduledTask cmdlet পাওয়া যায় না, তাই Windows 7 / Windows Server 2008 R2-এ বিল্ট-ইন টুল schtasks ব্যবহার করা ভালো। টাস্ক সেটিংস এক্সপোর্ট করতে এবং ফলাফলটিকে একটি পাঠ্য ফাইলে পুনঃনির্দেশ করতে:
schtasks /query /tn "NewPsTask" /xml >> "c:\tmp\NewPsTask.xml"
নির্ধারিত টাস্ক সেটিংস XML ফাইলে রপ্তানি করার পরে, এটি GUI, SchTasks.exe বা PowerShell ব্যবহার করে যেকোনো নেটওয়ার্ক কম্পিউটারে আমদানি করা যেতে পারে৷
নিবন্ধন-নির্ধারিত টাস্ক cmdlet আপনাকে একটি XML ফাইল থেকে টাস্ক সেটিংস আমদানি করতে এবং এটি নিবন্ধন করতে সাহায্য করতে পারে:
Register-ScheduledTask -Xml (Get-Content “\\mun-fs01\public\NewPsTask.xml” | out-string) -TaskName "NewPsTask"
PowerShell 2.0 (Windows 7/Server 2008 R2) এ, schtasks টুল ব্যবহার করে একটি টাস্ক ইম্পোর্ট করা সহজ। প্রথম কমান্ড একটি নতুন টাস্ক তৈরি করে। দ্বিতীয়টি অবিলম্বে এটি চালাবে (এটি সক্রিয় করার জন্য ট্রিগারের জন্য অপেক্ষা না করে)
schtasks /create /tn "NewPsTask" /xml "\\Srv1\public\NewPsTask.xml" /ru corp\skrutapal /rp Pa$$w0rd
schtasks /Run /TN "NewPsTask"অনুগ্রহ করে মনে রাখবেন যে এই উদাহরণটি অ্যাকাউন্টের শংসাপত্র ব্যবহার করে যা টাস্ক চালানোর জন্য ব্যবহৃত হয়। যদি শংসাপত্রগুলি নির্দিষ্ট করা না থাকে, কারণ সেগুলি চাকরিতে সংরক্ষণ করা হয় না, আমদানি করার সময় তাদের অনুরোধ করা হবে৷