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-JobTrigger
leké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-ScheduledJobOption
leké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-ScheduledJobOption
Set-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-Job
Stop-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-Job
A 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.