Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रणाली >> Windows Server

PowerShell का उपयोग करके शेड्यूल्ड टास्क कैसे बनाएं और प्रबंधित करें?

PowerShell के माध्यम से शेड्यूल्ड टास्क प्रबंधन

अधिकांश उपयोगकर्ता और व्यवस्थापक Windows पर शेड्यूल्ड टास्क बनाने और प्रबंधित करने के लिए taskschd.msc ग्राफिकल इंटरफेस कंसोल का उपयोग करते हैं। हालांकि, विभिन्न स्क्रिप्ट और स्वचालित वर्कफ़्लो में, शेड्यूल्ड टास्क बनाने के लिए PowerShell सुविधाओं का उपयोग करना अधिक सुविधाजनक है। इस लेख में, हम दिखाएंगे कि PowerShell का उपयोग करके Windows शेड्यूलर टास्क कैसे बनाएं और प्रबंधित करें।

ScheduledTasks PowerShell मॉड्यूल

ScheduledTasks PowerShell मॉड्यूल का उपयोग Windows 10/Windows Server 2016 पर शेड्यूल्ड टास्क प्रबंधित करने के लिए किया जाता है। आप मॉड्यूल में cmdlets को इस प्रकार सूचीबद्ध कर सकते हैं:

Get-Command -Module ScheduledTasks

उपलब्ध cmdlets:

  • Disable-ScheduledTask
  • Enable-ScheduledTask
  • Export-ScheduledTask
  • Get-ClusteredScheduledTask
  • Get-ScheduledTask
  • Get-ScheduledTaskInfo
  • New-ScheduledTask
  • New-ScheduledTaskAction
  • New-ScheduledTaskPrincipal
  • New-ScheduledTaskSettingsSet
  • New-ScheduledTaskTrigger
  • Register-ClusteredScheduledTask
  • Register-ScheduledTask
  • Set-ClusteredScheduledTask
  • Set-ScheduledTask
  • Start-ScheduledTask
  • Stop-ScheduledTask
  • Unregister-ClusteredScheduledTask
  • Unregister-ScheduledTask

संकेत: पहले, Windows में शेड्यूलर जॉब बनाने और प्रबंधित करने के लिए अंतर्निहित कंसोल टूल schtasks.exe का उपयोग किया जाता था।

Windows PowerShell के साथ शेड्यूल्ड टास्क बनाना

PowerShell के आधुनिक संस्करणों में (PowerShell 3.0 से शुरू होकर Windows Server 2012/Windows 8 पर), आप शेड्यूल्ड टास्क बनाने के लिए New-ScheduledTaskTrigger और Register-ScheduledTask cmdlets का उपयोग कर सकते हैं।

मान लीजिए, हमें एक शेड्यूल्ड टास्क बनाने की आवश्यकता है जो स्टार्टअप के दौरान (या किसी विशिष्ट समय पर) चलना चाहिए और कुछ PowerShell स्क्रिप्ट या कमांड निष्पादित करना चाहिए। आइए StartupScript1 नामक एक शेड्यूल्ड टास्क बनाएं। यह टास्क हर दिन सुबह 10:00 बजे PowerShell स्क्रिप्ट फाइल C:\PS\StartupScript.ps1 चलाना चाहिए। टास्क को उच्च विशेषाधिकारों के साथ (चेकबॉक्स "उच्चतम विशेषाधिकारों के साथ चलाएं") 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 स्क्रिप्ट निर्दिष्ट शेड्यूल पर चलेगा। यदि आपके कंप्यूटर पर 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 2.0 (Windows 7, Windows Server 2008 R2) में, PowerShell से शेड्यूल्ड टास्क बनाने के लिए आप Schedule.Service COM इंटरफेस का उपयोग कर सकते हैं (या PowerShell संस्करण को अपडेट करें)। इस उदाहरण में, हम एक शेड्यूल्ड टास्क बनाते हैं जो स्टार्टअप के दौरान 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 के साथ शेड्यूल्ड टास्क देखना और चलाना

आप निम्न कमांड के साथ Windows पर सभी सक्रिय शेड्यूल्ड टास्क सूचीबद्ध कर सकते हैं:

Get-ScheduledTask -TaskPath | ? state -ne Disabled

किसी विशिष्ट टास्क के बारे में जानकारी प्राप्त करने के लिए:

Get-ScheduledTask CheckServiceState| Get-ScheduledTaskInfo
LastRunTime : 4/7/2021 10:00:00 AM
LastTaskResult : 267011
NextRunTime : 4/8/2021 10:00:00 AM
NumberOfMissedRuns : 0
TaskName : CheckServiceState
TaskPath : \
PSComputerName : 

आप इस टास्क को अक्षम कर सकते हैं:

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" प्राप्त होती है, तो जांचें कि आप सही उपयोगकर्ता नाम प्रदान कर रहे हैं।

XML फाइलों के माध्यम से शेड्यूल्ड टास्क निर्यात और आयात कैसे करें?

PowerShell आपको किसी भी शेड्यूल्ड टास्क की वर्तमान सेटिंग्स को टेक्स्ट XML फाइल में निर्यात करने की अनुमति देता है। इसलिए आप किसी भी टास्क के पैरामीटर निर्यात कर सकते हैं और इसे अन्य कंप्यूटरों पर तैनात कर सकते हैं। टास्क को टास्क शेड्यूलर GUI और PowerShell कंसोल दोनों से निर्यात किया जा सकता है।

StartupScript नामक टास्क को StartupScript.xml फाइल में निर्यात करने का कमांड यहां दिया गया है:

Export-ScheduledTask StartupScript | out-file c:\tmp\StartupScript.xml

Export-ScheduledTask cmdlet PowerShell 2.0 में उपलब्ध नहीं है, इसलिए Windows 7 / Windows Server 2008 R2 में टास्क सेटिंग्स निर्यात करने और परिणाम को टेक्स्ट फाइल में रीडायरेक्ट करने के लिए अंतर्निहित टूल schtasks का उपयोग करना बेहतर है:

schtasks /query /tn "NewPsTask" /xml >> "c:\tmp\NewPsTask.xml"

शेड्यूल्ड टास्क सेटिंग्स को XML फाइल में निर्यात करने के बाद, इसे GUI, SchTasks.exe या PowerShell का उपयोग करके किसी भी नेटवर्क कंप्यूटर पर आयात किया जा सकता है।

Register-ScheduledTask 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"

कृपया ध्यान दें कि इस उदाहरण में उस खाते के क्रेडेंशियल्स का उपयोग किया जाता है जिसका उपयोग टास्क चलाने के लिए किया जाता है। यदि क्रेडेंशियल्स निर्दिष्ट नहीं हैं, क्योंकि वे जॉब में संग्रहीत नहीं हैं, तो आयात करते समय उनका अनुरोध किया जाएगा।

  1. iPhone कॉन्टैक्ट ग्रुप प्रबंधन: बनाएं और व्यवस्थित करें आसानी से iPhone कॉन्टैक्ट ग्रुप प्रबंधन: बनाएं और व्यवस्थित करें आसानी से

    जब आपको कॉन्टैक्ट्स के साथ बार-बार संवाद करना होता है, तो आपको उन्हें कुशलतापूर्वक प्रबंधित करने के तरीके खोजने होंगे। जब आप नियमित आधार पर व्यक्तियों के बजाय लोगों के समूह के साथ संवाद करते हैं, तो कॉन्टैक्ट ग्रुप सेट करना आपके कॉन्टैक्ट्स को प्रबंधित करने का एक शानदार तरीका है। यह न केवल आपके कॉन्

  1. Windows टास्क शेड्यूलर में शेड्यूल्ड कार्यों में देरी करके बूट समय तेज़ करें Windows टास्क शेड्यूलर में शेड्यूल्ड कार्यों में देरी करके बूट समय तेज़ करें

    हम में से कई लोगों ने कुछ बुनियादी कार्यों और प्रोग्राम को निष्पादित करने के लिए टास्क शेड्यूलर का उपयोग किया होगा। लेकिन, इसमें और भी बहुत कुछ है। टास्क शेड्यूलर का उपयोग करके, आप शेड्यूल्ड कार्यों के निष्पादन में देरी भी कर सकते हैं। किसी कार्य में देरी करने की सुविधा उपयोगी और उपयोग करने में काफी

  1. जीमेल टास्क मास्टर करें: अपनी टू-डू लिस्ट बनाएं, व्यवस्थित करें और प्रबंधित करें जीमेल टास्क मास्टर करें: अपनी टू-डू लिस्ट बनाएं, व्यवस्थित करें और प्रबंधित करें

    लोग अक्सर टास्क और रिमाइंडर बनाने और प्रबंधित करने के लिए थर्ड-पार्टी टूल्स का उपयोग करते थे। हर ऐप स्टोर पर सैकड़ों वेब और मोबाइल एप्लिकेशन उपलब्ध हैं जो ऐसा कर सकते हैं। और प्रत्येक दूसरे की तुलना में काम को सही ढंग से करने में बेहतर है। हालांकि, जब ईमेल क्लाइंट की बात आती है, तो टास्क बनाने और प