about_Scheduled_Jobs
Rövid leírás
Az ütemezett feladatok ismertetése, valamint az ütemezett feladatok PowerShellben és a Feladatütemezőben való használatának és kezelésének ismertetése.
Hosszú leírás
A PowerShell ütemezett feladatai a PowerShell-háttérfeladatok és a Feladatütemező feladatok hasznos hibridje.
A PowerShell háttérfeladataihoz hasonlóan az ütemezett feladatok aszinkron módon futnak a háttérben. A futtatott ütemezett feladatok példányai a feladat parancsmagjaival kezelhetők, például Start-Job
: , Get-Job
, Stop-Job
és Receive-Job
.
A Feladatütemező tevékenységekhez hasonlóan az ütemezett feladatok is lemezre lesznek mentve. Megtekintheti és kezelheti a feladatokat a Feladatütemezőben, szükség szerint engedélyezheti és letilthatja őket, futtathatja vagy sablonként használhatja őket, létrehozhat egy egyszeri vagy ismétlődő ütemezést a feladatok indításához, vagy beállíthatja a feladatok indításának feltételeit.
Emellett az ütemezett feladatpéldányok eredményeit a rendszer könnyen hozzáférhető formátumban menti a lemezre, és a feladat kimenetének futó naplóját adja meg. Az ütemezett feladatokhoz testre szabott parancsmagok vannak a kezelésükhöz. A parancsmagok lehetővé teszik ütemezett feladatok, feladat-eseményindítók és feladatbeállítások létrehozását, szerkesztését, kezelését, letiltását és újbóli engedélyezését.
Ez az átfogó és rugalmas eszközkészlet az ütemezett feladatokat számos professzionális PowerShell-informatikai megoldás alapvető összetevőjének teszi.
Az ütemezett feladat parancsmagjait a PowerShell-lel telepített PSScheduledJob modul tartalmazza. Ez a modul a PowerShell 3.0-s verziójában lett bevezetve, és a PowerShell 3.0-s és újabb verzióiban működik. További információ a PSScheduledJob modulban található parancsmagokról: PSScheduledJob.
További információ a PowerShell háttérfeladatairól: about_Jobs.
A Feladatütemezőről további információt a Feladatütemezőben talál.
Feljegyzés
A PowerShell ütemezett feladatait megtekintheti és kezelheti a Feladatütemezőben. A PowerShell-feladatok és az ütemezett feladatparancsmagok csak a PowerShellben létrehozott ütemezett feladatokon működnek.
Első lépések
Ez a példa létrehoz egy ütemezett feladatot, amely minden nap 3:00-kor indul, és futtatja a Get-Process
parancsmagot. A feladat akkor is elindul, ha a számítógép akkumulátorokon fut.
$trigger = New-JobTrigger -Daily -At 3AM
$options = New-ScheduledJobOption -StartIfOnBattery
Register-ScheduledJob -Name ProcessJob -ScriptBlock {Get-Process} `
-Trigger $trigger -ScheduledJobOption $options
A Get-ScheduledJob
parancsmag lekéri az ütemezett feladatokat a helyi számítógépen.
Get-ScheduledJob
Id Name Triggers Command Enabled
-- ---- -------- ------- -------
7 ProcessJob {1} Get-Process True
Get-JobTrigger
lekéri a ProcessJob feladatindítóit. A bemeneti paraméterek nem az eseményindítót, hanem az ütemezett feladatot adják meg, mert az eseményindítók ütemezett feladatba vannak mentve.
Get-JobTrigger -Name ProcessJob
Id Frequency Time DaysOfWeek Enabled
-- --------- ---- ---------- -------
1 Daily 11/5/2011 3:00:00 AM True
Ez a példa a parancsmag ContinueIfGoingOnBattery paraméterével Set-ScheduledJob
módosítja a ProcessJob StopIfGoingOnBatteries tulajdonságát Hamis értékre.
Get-ScheduledJob -Name ProcessJob | Set-ScheduledJobOption `
-ContinueIfGoingOnBattery -PassThru
StartIfOnBatteries : True
StopIfGoingOnBatteries : False
WakeToRun : True
StartIfNotIdle : True
StopIfGoingOffIdle : False
RestartOnIdleResume : False
IdleDuration : 00:10:00
IdleTimeout : 01:00:00
ShowInTaskScheduler : True
RunElevated : False
RunWithoutNetwork : True
DoNotAllowDemandStart : False
MultipleInstancePolicy : IgnoreNew
JobDefinition : Microsoft.PowerShell.ScheduledJob.ScheduledJobDefinition
A Get-ScheduledJob
parancsmag lekéri a ProcessJob ütemezett feladatát.
Get-ScheduledJob ProcessJob
Id Name Triggers Command Enabled
-- ---- -------- ------- -------
7 ProcessJob {1} Get-Process True
A Get-Job
parancsmag lekéri az eddig futtatott ProcessJob ütemezett feladat összes példányát. A Get-Job
parancsmag csak akkor kapja meg az ütemezett feladatokat, ha a PSScheduledJob modult importálja az aktuális munkamenetbe.
Tipp.
Figyelje meg, hogy az ütemezett feladat parancsmagjaival kezeli az ütemezett feladatokat, de a feladatparancsmagokkal kezelheti az ütemezett feladatok példányait.
Get-Job -Name ProcessJob
Id Name PSJobTypeName State HasMoreData Location Command
-- ---- ------------ ----- ----------- -------- -------
45 ProcessJob PSScheduledJob Completed True localhost Get-Process
46 ProcessJob PSScheduledJob Completed True localhost Get-Process
47 ProcessJob PSScheduledJob Completed True localhost Get-Process
48 ProcessJob PSScheduledJob Completed True localhost Get-Process
49 ProcessJob PSScheduledJob Completed True localhost Get-Process
50 ProcessJob PSScheduledJob Completed True localhost Get-Process
51 ProcessJob PSScheduledJob Completed True localhost Get-Process
A Receive-Job
parancsmag lekéri a ProcessJob ütemezett feladat legutóbbi példányának eredményeit (id = 51).
Receive-Job -ID 51
Annak ellenére, hogy a Receive-Job
parancs nem tartalmazza a Keep paramétert, a rendszer a feladat eredményeit lemezre menti, amíg el nem törli őket, vagy nem lépi túl az eredmények maximális számát.
A feladat eredményei már nem érhetők el ebben a munkamenetben, de ha új munkamenetet indít vagy új PowerShell-ablakot nyit meg, a feladat eredményei ismét elérhetők lesznek.
A következő parancs a parancsmag DefinitionName paraméterével Start-Job
indítja el a ProcessJob ütemezett feladatát.
A parancsmaggal Start-Job
indított feladatok szabványos PowerShell-háttérfeladatok, nem pedig az ütemezett feladat példányai. Mint minden háttérfeladat, ezek a feladatok is azonnal elindulnak, nem vonatkoznak rájuk a feladatbeállítások, és nem érintik őket a feladat-eseményindítók, és a kimenetüket nem menti a rendszer az ütemezett feladatkönyvtár kimeneti könyvtárába.
Start-Job -DefinitionName ProcessJob
A Unregister-ScheduledJob
parancsmag törli a ProcessJob ütemezett feladatát és a feladatpéldányok összes mentett eredményét.
Unregister-ScheduledJob ProcessJob
Ütemezett feladatok fogalmai
Az ütemezett feladatok parancsokat vagy szkripteket futtatnak. Az ütemezett feladatok tartalmazhatnak olyan feladat-eseményindítókat, amelyek elindítják a feladatot, és a feladat futtatásához feltételeket jelölő feladatbeállításokat.
A feladat-eseményindítók automatikusan elindítanak egy ütemezett feladatot. A feladat-eseményindítók tartalmazhatnak egyszeri vagy ismétlődő ütemezést, vagy megadhatnak egy eseményt, például amikor egy felhasználó bejelentkezik vagy a Windows elindul. Az ütemezett feladatokhoz egy vagy több feladat-eseményindító is tartozhat, és létrehozhat, vehet fel, engedélyezhet, letilthat és lekérhet feladat-eseményindítókat.
A feladat-eseményindítók megadása nem kötelező. Az ütemezett feladatokat azonnal elindíthatja a Start-Job cmdlet
parancs használatával, vagy a RunNow paraméter parancshoz való Register-ScheduledJob
hozzáadásával.
A feladatbeállítások beállítják az ütemezett feladatok futtatásának feltételeit. Minden ütemezett feladathoz tartozik egy feladatbeállítási objektum. Feladatbeállítások objektumokat hozhat létre és szerkeszthet, és hozzáadhatja őket egy vagy több ütemezett feladathoz.
Az ütemezett feladatok minden indításakor létrejön egy feladatpéldány. A Feladatpéldány megtekintése és kezelése a PowerShell-feladat parancsmagjaival.
Az ütemezett feladatok lemezre vannak mentve, és a parancsmagot használják ahelyett, Register
hogy a parancsmagot használták New
volna. Az XML-fájlok a könyvtár $HOME\AppData\Local\Microsoft\Windows\PowerShell\ScheduledJobs
helyi számítógépén találhatók.
A PowerShell minden ütemezett feladathoz létrehoz egy könyvtárat, és menti a feladatparancsokat, a feladat-eseményindítókat, a feladatbeállításokat és a feladateredményeket az ütemezett feladatkönyvtárban. A feladat-eseményindítókat és a feladatbeállításokat a rendszer nem menti a lemezre egymástól függetlenül. A rendszer minden olyan ütemezett feladat XML-fájljában menti őket, amelyhez társítva vannak.
Az ütemezett feladatok, feladat-eseményindítók és feladatbeállítások objektumként jelennek meg a PowerShellben. Az objektumok összekapcsolva vannak, ami megkönnyíti a parancsok és szkriptek felderítését és használatát.
Az ütemezett feladatok ScheduledJobDefinition objektumként jelennek meg. Az ScheduledJobDefinition objektumhoz tartozik egy JobTriggers tulajdonság, amely az ütemezett feladat feladatindítóit és a feladatbeállításokat tartalmazó Beállítások tulajdonságot tartalmazza. Az ScheduledJobTriggers és az ScheduledJobOptions objektumok, amelyek feladat-eseményindítókat és feladatbeállításokat jelölnek, mindegyik rendelkezik egy JobDefinition tulajdonsággal, amely tartalmazza azt az ütemezett feladatot, amelyhez társítva vannak. Ez a rekurzív összekapcsolás megkönnyíti az ütemezett feladatok eseményindítóinak és beállításainak megtalálását, valamint az ütemezett feladat megkeresését, szkriptjét és megjelenítését, amelyhez bármely feladat-eseményindító vagy feladatbeállítás társítva van.