about_Scheduled_Jobs_Basics

Rövid leírás

Bemutatja, hogyan hozhat létre és kezelhet ütemezett feladatokat.

Hosszú leírás

Ez a dokumentum bemutatja, hogyan hajthatja végre az ütemezett feladatok létrehozásának és kezelésének alapvető feladatait. A speciálisabb tevékenységekről további információt a about_Scheduled_Jobs_Advanced című témakörben talál.

További információ a PSScheduledJob modulban található parancsmagokról: PSScheduledJob.

Ütemezett feladat létrehozása

Ütemezett feladat létrehozásához használja a Register-ScheduledJob parancsmagot. A parancsmagnak szüksége van egy névre, valamint a feladat által futtatott parancsra vagy szkriptre. A feladatot azonnal futtathatja a RunNow paraméter hozzáadásával, vagy létrehozhat egy feladat-eseményindítót, és megadhatja a feladat beállításait a feladat létrehozásakor, vagy szerkesztheti a meglévő feladatokat.

Szkriptet futtató feladat létrehozásához a FilePath paraméterrel adja meg a szkriptfájl elérési útját. Parancsokat futtató feladat létrehozásához használja a ScriptBlock paramétert .

A Register-ScheduledJob parancsmag létrehozza a ProcessJob parancsot, amely egy parancsot Get-Process futtat. Ez az ütemezett feladat rendelkezik az alapértelmezett feladatbeállításokkal, és nincs feladat-eseményindító.

Register-ScheduledJob -Name ProcessJob -ScriptBlock { Get-Process }
Id         Name            Triggers        Command       Enabled
--         ----            --------        -------       -------
8          ProcessJob      {}              Get-Process   True

Feladat-eseményindító létrehozása

A feladat-eseményindítók automatikusan elindítanak egy ütemezett feladatot. A feladat-eseményindítók lehetnek egyszeri vagy ismétlődő ütemezések vagy események, például amikor egy felhasználó bejelentkezik vagy a Windows elindul. Minden feladathoz nulla, egy vagy több feladat-eseményindító tartozhat.

Feladat-eseményindító létrehozásához használja a New-JobTrigger parancsmagot. A következő parancs létrehoz egy feladat-eseményindítót, amely minden hétfőn és csütörtökön 5:00-kor elindít egy feladatot. A parancs menti a feladat-eseményindítót a $T változóban.

$T = New-JobTrigger -Weekly -DaysOfWeek "Monday", "Thursday" -At "5:00 AM"

A feladat-eseményindítók megadása nem kötelező. Az ütemezett feladatokat bármikor elindíthatja, ha hozzáadja a RunNow paramétert a Register-ScheduledJob parancshoz, vagy a Start-Job parancsmagok használatával.

Feladat-eseményindító hozzáadása

Amikor feladat-eseményindítót ad hozzá egy ütemezett feladathoz, a feladat-eseményindító hozzá lesz adva az ütemezett feladat ütemezett feladat XML-fájljához, és az ütemezett feladat részévé válik.

Az ütemezett feladat létrehozásakor vagy egy meglévő feladat szerkesztésekor hozzáadhat egy feladat-eseményindítót egy ütemezett feladathoz. Az ütemezett feladatok feladatindítóját bármikor módosíthatja.

A PowerShell ugyanazokat a feladat-eseményindítókat használja, amelyeket a Feladatütemező használ. A feladat-eseményindítókkal kapcsolatos részletes információkért tekintse meg a New-JobTrigger parancsmag súgótémakörét.

Az alábbi példa splatting használatával hozza létre $JobParms a parancsmagnak Register-ScheduledJob átadott paraméterértékeket. További információ: about_Splatting.md. Az Register-ScheduledJob ütemezett feladatok létrehozásának felhasználási módjai @JobParms . Az Eseményindító paraméter használatával adja meg a feladat-eseményindítót a $T változóban.

$JobParms = @{
  Name = "ProcessJob"
  ScriptBlock = {Get-Command}
  Trigger = $T
}

Register-ScheduledJob @JobParms

Egy feladat-eseményindítót bármikor hozzáadhat egy meglévő ütemezett feladathoz. A Add-JobTrigger parancsmag hozzáadja a változóban lévő $T feladatindítót a ProcessJob ütemezett feladathoz.

Add-JobTrigger -Name ProcessJob -Trigger $T

Ennek eredményeképpen a feladat-eseményindító minden hétfőn és csütörtökön 5:00-kor automatikusan elindítja a ProcessJob-feladatot .

Feladat-eseményindító lekérése

Egy ütemezett feladat feladatindítójának lekéréséhez használja a Get-JobTrigger parancsmagot. A Név, az Azonosító és az InputObject paraméter használatával adja meg az ütemezett feladatot, nem pedig a feladat-eseményindítót.

Get-JobTriggerlekéri a ProcessJob feladatindítóját.

Get-JobTrigger -Name ProcessJob
Id   Frequency       Time                   DaysOfWeek              Enabled
--   ---------       ----                   ----------              -------
1    Weekly          11/7/2011 5:00:00 AM   {Monday, Thursday}      True

Feladatbeállítások létrehozása

A feladat beállításai feltételeket határoznak meg a feladat elindításához és futtatásához. Minden feladatnak megvannak az alapértelmezett feladatbeállításai, hacsak nem módosítja őket. Mivel a feladatbeállítások megakadályozhatják, hogy egy feladat az ütemezett időpontban fusson, fontos tisztában lenni a feladat beállításaival, és gondosan használni őket.

A PowerShell ugyanazokat a feladatbeállításokat használja, mint a Feladatütemező. A feladatbeállításokról további információt a New-ScheduledJobOption súgótémakörében talál.

A feladatbeállítások az ütemezett feladat XML-fájljában vannak tárolva. Ütemezett feladat létrehozásakor vagy bármikor módosíthatja a feladatbeállításokat.

A New-ScheduledJobOption parancsmag létrehoz egy ütemezett feladatbeállítást, amelyben a WakeToRun ütemezett feladat beállítása Igaz értékre van állítva. A WakeToRun beállítás akkor is futtatja az ütemezett feladatot, ha a számítógép alvó vagy hibernált állapotban van az ütemezett kezdési időpontban. A parancs menti a feladatbeállításokat a $O változóban.

$O = New-ScheduledJobOption -WakeToRun

Feladatbeállítások lekérése

Az ütemezett feladatok feladatbeállításainak lekéréséhez használja a Get-ScheduledJobOption parancsmagot. A Név, az Azonosító és az InputObject paraméter használatával adja meg az ütemezett feladatot, nem pedig a feladatbeállításokat.

Get-ScheduledJobOptionlekéri a ProcessJob feladatbeállításait.

Get-ScheduledJobOption -Name ProcessJob
StartIfOnBatteries     : False
StopIfGoingOnBatteries : True
WakeToRun              : False
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

Feladatbeállítások módosítása

Ütemezett feladat létrehozásakor vagy meglévő feladat szerkesztésekor módosíthatja az ütemezett feladatok feladatbeállításait.

A rendszer átadja a beszúrt $JobParms elemet a Add-JobTrigger parancsmagnak a folyamatfeladat létrehozásához. Az ScheduledJobOption paramétert használja a változó feladatbeállításainak $O megadásához.

$JobParms = @{
  Name = "ProcessJob"
  ScriptBlock = {Get-Process}
  ScheduledJobOption = $O
}

Add-JobTrigger @JobParms

A feladatbeállításokat bármikor módosíthatja egy meglévő ütemezett feladatra. A következő parancs a Set-ScheduledJobOption parancsmaggal módosítja a ProcessJob ütemezett feladat WakeToRun beállításának értékét Igaz értékre.

A Set PSScheduledJob modul parancsmagjai( például a Set-ScheduledJobOption parancsmag) nem rendelkeznek név- vagy azonosítóparaméterekkel. Az InputObject paraméterrel megadhatja az ütemezett feladat beállításait, vagy egy ütemezett feladatot a parancsmagból a parancsmagba Get-ScheduledJobOptionSet-ScheduledJobOption.

Ez a példa a Get-ScheduledJob parancsmagot használja a ProcessJob lekéréséhez. A parancsmaggal Get-ScheduledJobOption lekéri a ProcessJob feladatbeállításokat, a Set-ScheduledJobOption parancsmag pedig a WakeToRun feladat beállítást Igaz értékre módosítja.

Get-ScheduledJob -Name ProcessJob | Get-ScheduledJobOption |
 Set-ScheduledJobOption -WakeToRun

Ütemezett feladatpéldányok lekérése

Ütemezett feladat indításakor a PowerShell létrehoz egy olyan feladatpéldányt, amely hasonló egy szabványos PowerShell-háttérfeladathoz. A feladatparancsmagok, például Get-JobStop-Job a feladatpéldányok kezelésére és Receive-Job kezelésére is használhatók.

Feljegyzés

Az ütemezett feladatok példányaihoz tartozó feladatparancsmagok használatához a PSScheduledJob modult importálni kell a munkamenetbe. A PSScheduledJob modul importálásához írja be Import-Module PSScheduledJob vagy használja az ütemezett feladat parancsmagot, például Get-ScheduledJob.

A PowerShell ütemezett feladatainak és az összes aktív standard feladatnak a lekéréséhez használja a Get-Job parancsmagot. A Import-Module parancsmag importálja a PSScheduledJob modult, és Get-Job lekéri a feladatokat a helyi számítógépen.

Import-Module PSScheduledJob
Get-Job

Get-JobA folyamatjob példányait a helyi számítógépen kapja meg.

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

Az alapértelmezett megjelenítés nem jeleníti meg a kezdési időpontot, amely általában megkülönbözteti ugyanannak az ütemezett feladatnak a példányait.

A Get-Job parancsmag objektumokat küld a folyamatba. A Format-Table parancsmag megjeleníti az ütemezett feladat nevét, azonosítóját és BeginTime-tulajdonságait .

Get-Job ProcessJob | Format-Table -Property Name, ID, BeginTime
Name       Id BeginTime
----       -- ---------
ProcessJob 43 11/2/2011 3:00:02 AM
ProcessJob 44 11/3/2011 3:00:02 AM
ProcessJob 45 11/4/2011 3:00:02 AM
ProcessJob 46 11/5/2011 3:00:02 AM
ProcessJob 47 11/6/2011 3:00:02 AM
ProcessJob 48 11/7/2011 12:00:01 AM
ProcessJob 49 11/7/2011 3:00:02 AM
ProcessJob 50 11/8/2011 3:00:02 AM

Ütemezett feladatok eredményeinek lekérése

Egy ütemezett feladat egy példányának eredményeinek lekéréséhez használja a Receive-Job parancsmagot.

Feljegyzés

Ha a Feladat parancsmagokat ütemezett feladatok példányaihoz szeretné használni, a PSScheduledJob modult importálni kell a munkamenetbe. A PSScheduledJob modul importálásához írja be Import-Module PSScheduledJob vagy használja az ütemezett feladat parancsmagot, például Get-ScheduledJob.

Ez a példa lekéri a ProcessJob ütemezett feladat legújabb példányának eredményeit (id = 51).

Import-Module PSScheduledJob
Receive-Job -ID 51 -Keep

Az ütemezett feladatok eredményei lemezre vannak mentve, ezért a Keep paraméter nem Receive-Job szükséges. A Keep paraméter nélkül azonban az ütemezett feladatok eredményeit csak egyszer kaphatja meg minden PowerShell-munkamenetben. Új PowerShell-munkamenet indításához írjon be PowerShell vagy nyisson meg egy új PowerShell-ablakot.

Lásd még