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-JobTriggerleké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 cmdletparancs 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, Registerhogy a parancsmagot használták Newvolna. Az XML-fájlok a könyvtár $HOME\AppData\Local\Microsoft\Windows\PowerShell\ScheduledJobshelyi 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.

Lásd még