about_Scheduled_Jobs_Advanced

Rövid leírás

Az ütemezett feladatok speciális témaköreit ismerteti, beleértve az ütemezett feladatok alapjául tartozó fájlstruktúrát is.

Hosszú leírás

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

Ütemezett feladatkönyvtárak és -fájlok

A PowerShell ütemezett feladatai PowerShell-feladatok és feladatütemező-feladatok is. Minden ütemezett feladat regisztrálva van a Feladatütemezőben, és a lemezre menti a Microsoft .NET-keretrendszer Szerializálás XML formátumban.

Ütemezett feladat létrehozásakor a PowerShell létrehoz egy könyvtárat az ütemezett feladathoz a $HOME\AppData\Local\Microsoft\Windows\PowerShell\ScheduledJobs helyi számítógépen található könyvtárban. A címtár neve megegyezik a feladat nevével.

Az alábbiakban egy ScheduledJobs-mintakönyvtárat mutatunk be.

Get-ChildItem $HOME\AppData\Local\Microsoft\Windows\PowerShell\ScheduledJobs
Directory: C:\Users\User01\AppData\Local
               \Microsoft\Windows\PowerShell\ScheduledJobs

Mode                LastWriteTime     Length Name
----                -------------     ------ ----
d----         9/29/2011  10:03 AM            ArchiveProjects
d----         9/30/2011   1:18 PM            Inventory
d----        10/20/2011   9:15 AM            Backup-Scripts
d----         11/7/2011  10:40 AM            ProcessJob
d----         11/2/2011  10:25 AM            SecureJob
d----         9/27/2011   1:29 PM            Test-HelpFiles
d----         9/26/2011   4:22 PM            DeployPackage

Minden ütemezett feladatnak saját könyvtára van. A könyvtár tartalmazza az ütemezett feladat XML-fájlja és egy Kimeneti alkönyvtár.

$Path = "$HOME\AppData\Local\Microsoft\Windows\PowerShell"
$Path += "\ScheduledJobs\ProcessJob"
Get-ChildItem $Path
Directory: C:\Users\User01\AppData\Local\Microsoft\Windows\PowerShell
               \ScheduledJobs\ProcessJob

Mode                LastWriteTime     Length Name
----                -------------     ------ ----
d----         11/1/2011   3:00 PM            Output
-a---         11/1/2011   3:43 PM       7281 ScheduledJobDefinition.xml

Az ütemezett feladatok kimeneti könyvtára tartalmazza a végrehajtási előzményeit. Minden alkalommal, amikor egy feladat-eseményindító elindít egy ütemezett feladatot, a PowerShell létrehoz egy időbélyeg-névvel ellátott könyvtárat a kimeneti könyvtárban. Az időbélyeg könyvtár egy Results.xml fájlban található feladat eredményeit és egy Status.xml fájl feladatállapotát tartalmazza.

Az alábbi parancs a ProcessJob ütemezett feladat végrehajtási előzménykönyvtárát mutatja be.

$Path = "$HOME\AppData\Local\Microsoft"
$Path += "\Windows\PowerShell\ScheduledJobs\ProcessJob\Output"
Get-ChildItem $Path
Directory: C:\Users\User01\AppData\Local\Microsoft
               \Windows\PowerShell\ScheduledJobs\ProcessJob\Output

Mode                LastWriteTime     Length Name
----                -------------     ------ ----
d----         11/2/2011   3:00 AM            20111102-030002-260
d----         11/3/2011   3:00 AM            20111103-030002-277
d----         11/4/2011   3:00 AM            20111104-030002-209
d----         11/5/2011   3:00 AM            20111105-030002-251
d----         11/6/2011   3:00 AM            20111106-030002-174
d----         11/7/2011  12:00 AM            20111107-000001-914
d----         11/7/2011   3:00 AM            20111107-030002-376
$Path = "$HOME\AppData\Local\Microsoft\Windows\PowerShell\"
$Path += "ScheduledJobs\ProcessJob\Output\20111102-030002-260"
Get-ChildItem $Path
Directory: C:\Users\User01\AppData\Local\Microsoft\Windows\PowerShell
               \ScheduledJobs\ProcessJob\Output\20111102-030002-260

Mode                LastWriteTime     Length Name
----                -------------     ------ ----
-a---         11/2/2011   3:00 AM     581106 Results.xml
-a---         11/2/2011   3:00 AM       9451 Status.xml

Megnyithatja és megvizsgálhatja a ScheduledJobDefinition.xml, Results.xml és Status.xml fájlokat, vagy a Select-XML parancsmaggal elemezheti a fájlokat.

Figyelmeztetés

Ne szerkessze az XML-fájlokat. Ha bármely XML-fájl érvénytelen XML-fájlt tartalmaz, a PowerShell törli az ütemezett feladatot és annak végrehajtási előzményeit, beleértve a feladat eredményeit is.

Ütemezett feladat azonnali indítása

Az ütemezett feladatokat kétféleképpen indíthatja el azonnal:

  • Futtassa a Start-Job parancsmagot az ütemezett feladatok indításához.
  • Adja hozzá a RunNow paramétert a Register-ScheduledJob parancshoz, hogy a parancs futtatása után azonnal elindítsa a feladatot.

A parancsmaggal Start-Job indított feladatok szabványos PowerShell-háttérfeladatok, nem pedig az ütemezett feladat példányai. Az összes háttérfeladathoz hasonlóan ezek a feladatok is azonnal elindulnak, és nem vonatkoznak rájuk a feladatbeállítások, és nem érintik őket a feladatindítók. A feladat kimenete nincs mentve az ütemezett feladatkönyvtár Kimeneti könyvtárában.

A következő parancs a parancsmag DefinitionName paraméterével Start-Job indítja el a ProcessJob ütemezett feladatát.

Start-Job -DefinitionName ProcessJob

A feladat kezeléséhez és a feladat eredményeinek lekéréséhez használja a feladatparancsmagokat. A feladatparancsmagokkal kapcsolatos további információkért lásd : about_Jobs.

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.

Ütemezett feladat átnevezése

Ütemezett feladat átnevezéséhez használja a parancsmag Név paraméterét Set-ScheduledJob . Ütemezett feladat átnevezésekor a PowerShell megváltoztatja az ütemezett feladat nevét és az ütemezett feladat könyvtárát. Ez azonban nem módosítja a már futtatott ütemezett feladat példányainak nevét.

Kezdési és befejezési időpontok lekérése

A feladatpéldányok kezdési és befejezési dátumainak és időpontjának lekéréséhez használja az ütemezett feladatokhoz visszaadott ScheduledJob objektum Get-Job PSBeginTime és P Standard kiadás ndTime tulajdonságait.

Az alábbi példa a Format-Table parancsmag Tulajdonság paraméterével jeleníti meg a tábla egyes feladatpéldányainak PSBeginTime és P Standard kiadás ndTime tulajdonságait. A Címke nevű számított tulajdonság megjeleníti az egyes feladatpéldányok eltelt idejét.

Get-job -Name UpdateHelpJob |
  Format-Table -Property ID, PSBeginTime, PSEndTime,
@{Label="Elapsed Time";Expression={$.PsEndTime - $.PSBeginTime}}
Id   PSBeginTime             PSEndTime                Elapsed Time
--   -----------             ---------                ------------
 2   11/3/2011 3:00:01 AM    11/3/2011 3:00:39 AM     00:00:38.0053854
 3   11/4/2011 3:00:02 AM    11/4/2011 3:01:01 AM     00:00:59.1188475
 4   11/5/2011 3:00:02 AM    11/5/2011 3:00:50 AM     00:00:48.3692034
 5   11/6/2011 3:00:01 AM    11/6/2011 3:00:54 AM     00:00:52.8013036
 6   11/7/2011 3:00:01 AM    11/7/2011 3:00:38 AM     00:00:37.1930350
 7   11/8/2011 3:00:01 AM    11/8/2011 3:00:57 AM     00:00:56.2570556
 8   11/9/2011 3:00:03 AM    11/9/2011 3:00:55 AM     00:00:51.8142222
 9   11/10/2011 3:00:02 AM   11/10/2011 3:00:42 AM    00:00:40.7195954

Végrehajtási előzmények kezelése

Meghatározhatja az egyes ütemezett feladatokhoz mentett feladatpéldány-eredmények számát, és törölheti az ütemezett feladatok végrehajtási előzményeit és mentett feladateredményeit.

Az ütemezett feladatok ExecutionHistoryLength tulajdonsága határozza meg, hogy a rendszer hány feladatpéldány-eredményt ment az ütemezett feladathoz. Ha a mentett eredmények száma meghaladja a ExecutionHistoryLength tulajdonság értékét, a PowerShell törli a legrégebbi példány eredményeit, hogy helyet biztosítsunk a legújabb példány eredményeinek.

A PowerShell alapértelmezés szerint minden ütemezett feladat 32 példányának végrehajtási előzményeit és eredményeit menti. Az érték módosításához használja a parancsmagok Register-ScheduledJobSet-ScheduledJob MaxResultCount paramétereit.

Az ütemezett feladatok végrehajtási előzményeinek és összes eredményének törléséhez használja a parancsmag ClearExecutionHistory paraméterét Set-ScheduledJob . A végrehajtási előzmények törlése nem akadályozza meg, hogy a PowerShell mentse az ütemezett feladat új példányainak eredményeit.

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 . A parancs a MaxResultCount paramétert használja 12 értékkel, hogy csak az ütemezett feladat 12 legújabb feladatpéldány-eredményét mentse.

$JobParms = @{
  Name = "ProcessJob"
  ScriptBlock = {Get-Process}
  MaxResultCount = "12"
}

Register-ScheduledJob @JobParms

Az alábbi parancs a parancsmag MaxResultCount paraméterével Set-ScheduledJob 15-re növeli a mentett példányok eredményeit.

Get-ScheduledJob ProcessJob | Set-ScheduledJob -MaxResultCount 15

Az alábbi parancs törli a folyamatjob ütemezett feladat végrehajtási előzményeit és aktuális mentett eredményeit.

Get-ScheduledJob ProcessJob | Set-ScheduledJob -ClearExecutionHistory

Az alábbi parancs lekéri a számítógépen lévő összes ütemezett feladat nevének és ExecutionHistoryLength tulajdonságának értékeit, és megjeleníti őket egy táblában.

Get-ScheduledJob |
  Format-Table -Property Name, ExecutionHistoryLength -AutoSize

Lásd még