Sdílet prostřednictvím


Informace o naplánovaných úlohách

Stručný popis

Popisuje naplánované úlohy a vysvětluje, jak používat a spravovat naplánované úlohy v PowerShellu a v Plánovači úloh.

Dlouhý popis

Naplánované úlohy PowerShellu jsou užitečným hybridem úloh PowerShellu na pozadí a úloh Plánovače úloh.

Stejně jako úlohy PowerShellu na pozadí i naplánované úlohy běží asynchronně na pozadí. Instance naplánovaných úloh, které se spustily, je možné spravovat pomocí rutin úloh, jako Start-Jobjsou , Get-JobStop-Job, a Receive-Job.

Podobně jako úlohy Plánovače úloh se naplánované úlohy ukládají na disk. Úlohy můžete zobrazit a spravovat v Plánovači úloh, podle potřeby je povolit a zakázat, spouštět je nebo používat jako šablony, vytvořit jednorázové nebo opakované plány pro spouštění úloh nebo nastavit podmínky, za kterých se úlohy spustí.

Kromě toho se výsledky naplánovaných instancí úloh ukládají na disk ve snadno přístupném formátu, který poskytuje spuštěný protokol výstupu úlohy. Plánované úlohy se dodávají s přizpůsobenou sadou rutin pro jejich správu. Rutiny umožňují vytvářet, upravovat, spravovat, zakazovat a znovu povolovat naplánované úlohy, triggery úloh a možnosti úloh.

Díky této komplexní a flexibilní sadě nástrojů jsou naplánované úlohy nezbytnou součástí mnoha profesionálních řešení POWERShell IT.

Rutiny naplánované úlohy jsou součástí modulu PSScheduledJob , který se instaluje s PowerShellem. Tento modul byl představen v PowerShellu 3.0 a funguje v PowerShellu 3.0 a novějších verzích PowerShellu. Další informace o rutinách obsažených v modulu PSScheduledJob .

Další informace o úlohách PowerShellu na pozadí najdete v tématu about_Jobs.

Další informace o Plánovači úloh najdete v tématu Plánovač úloh.

Poznámka

Naplánované úlohy PowerShellu můžete zobrazit a spravovat v Plánovači úloh. Úlohy PowerShellu a rutiny naplánovaných úloh fungují jenom u naplánovaných úloh vytvořených v PowerShellu.

Rychlý start

Tento příklad vytvoří naplánovanou úlohu, která se spustí každý den ve 3:00 a spustí rutinu Get-Process . Úloha se spustí i v případě, že počítač běží na bateriích.

$trigger = New-JobTrigger -Daily -At 3AM
$options = New-ScheduledJobOption -StartIfOnBattery
Register-ScheduledJob -Name ProcessJob -ScriptBlock {Get-Process} `
-Trigger $trigger -ScheduledJobOption $options

Rutina Get-ScheduledJob získá naplánované úlohy v místním počítači.

Get-ScheduledJob
Id         Name            Triggers        Command            Enabled
--         ----            --------        -------            -------
7          ProcessJob      {1}             Get-Process        True

Get-JobTrigger získá triggery úlohy úlohy úlohy ProcessJob. Vstupní parametry určují naplánovanou úlohu, ne trigger, protože triggery se ukládají v naplánované úloze.

Get-JobTrigger -Name ProcessJob
Id         Frequency       Time                   DaysOfWeek        Enabled
--         ---------       ----                   ----------        -------
1          Daily           11/5/2011 3:00:00 AM                     True

Tento příklad používá ContinueIfGoingOnBattery parametr Set-ScheduledJob rutiny ke změně StopIfGoingOnBatteries vlastnost ProcessJob na False.

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

Rutina Get-ScheduledJob získá naplánovanou úlohu ProcessJob .

Get-ScheduledJob ProcessJob
Id         Name            Triggers        Command        Enabled
--         ----            --------        -------        -------
7          ProcessJob      {1}             Get-Process    True

Rutina Get-Job získá všechny instance naplánované úlohy úlohy ProcessJob , které byly dosud spuštěny. Rutina Get-Job získá naplánované úlohy pouze v době, kdy je modul PSScheduledJob importován do aktuální relace.

Tip

Všimněte si, že ke správě plánovaných úloh používáte rutiny naplánovaných úloh, ale ke správě instancí plánovaných úloh používáte rutiny úloh.

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

Rutina Receive-Job získá výsledky poslední instance naplánované úlohy ProcessJob (ID = 51).

Receive-Job -ID 51

I když Receive-Job příkaz neobsahoval parametr Keep , výsledky úlohy se uloží na disk, dokud je neodstraníte nebo dokud se nepřekročí maximální počet výsledků.

Výsledky úlohy už nejsou v této relaci k dispozici, ale pokud spustíte novou relaci nebo otevřete nové okno PowerShellu, budou výsledky úlohy znovu k dispozici.

Následující příkaz pomocí parametru DefinitionName rutiny Start-Job spustí naplánovanou úlohu ProcessJob .

Úlohy spuštěné pomocí rutiny jsou standardní úlohy PowerShellu Start-Job na pozadí, nikoli instance naplánované úlohy. Stejně jako všechny úlohy na pozadí se tyto úlohy spustí okamžitě, nevztahují se na ně možnosti úloh ani na ně nemají vliv triggery úloh a jejich výstup se neuloží do výstupního adresáře naplánovaného adresáře úloh.

Start-Job -DefinitionName ProcessJob

Rutina Unregister-ScheduledJob odstraní naplánovanou úlohu úlohy ProcessJob a všechny uložené výsledky jejích instancí úloh.

Unregister-ScheduledJob ProcessJob

Koncepty naplánovaných úloh

Naplánovaná úloha spustí příkazy nebo skript. Naplánovaná úloha může zahrnovat triggery úloh, které spustí úlohu, a možnosti úlohy, které nastavují podmínky pro spuštění úlohy.

Trigger úlohy automaticky spustí naplánovanou úlohu. Trigger úlohy může zahrnovat jednorázový nebo opakovaný plán nebo určit událost, například když se uživatel přihlásí nebo spustí Windows. Naplánovaná úloha může mít jeden nebo více triggerů úloh a můžete vytvářet, přidávat, povolovat, zakazovat a získávat triggery úloh.

Triggery úloh jsou volitelné. Naplánované úlohy můžete spustit okamžitě pomocí Start-Job cmdletpříkazu nebo přidáním parametru RunNow do příkazu Register-ScheduledJob .

Možnosti úlohy nastavily podmínky pro spuštění naplánované úlohy. Každá naplánovaná úloha má jeden objekt možností úlohy. Můžete vytvářet a upravovat objekty možností úloh a přidávat je do jedné nebo více naplánovaných úloh.

Při každém spuštění naplánované úlohy se vytvoří instance úlohy. K zobrazení a správě instance úlohy použijte rutiny úloh PowerShellu.

Naplánované úlohy se ukládají na disk a místo příkazu používají příkaz Registerrutiny New. Soubory XML jsou umístěny v místním počítači v adresáři $home\AppData\Local\Microsoft\Windows\PowerShell\ScheduledJobs.

PowerShell vytvoří adresář pro každou naplánovanou úlohu a uloží příkazy úlohy, triggery úloh, možnosti úlohy a výsledky úlohy do adresáře naplánovaných úloh. Triggery úloh a možnosti úloh se neukládají na disk nezávisle na sobě. Ukládají se do souboru XML naplánované úlohy každé naplánované úlohy, ke které jsou přidruženy.

Naplánované úlohy, triggery úloh a možnosti úloh se zobrazí v PowerShellu jako objekty. Objekty jsou vzájemně propojené, což usnadňuje jejich zjišťování a použití v příkazech a skriptech.

Naplánované úlohy se zobrazí jako objekty ScheduledJobDefinition . ScheduledJobDefinition Objekt má JobTriggers vlastnost, která obsahuje triggery úlohy naplánované úlohy a Options vlastnost, která obsahuje možnosti úlohy. ScheduledJobTriggers a ScheduledJobOptions objekty, které představují triggery úlohy a možnosti úlohy, každý mají JobDefinition vlastnost, která obsahuje naplánovanou úlohu, se kterou jsou přidruženy. Toto rekurzivní propojení usnadňuje vyhledání triggerů a možností naplánované úlohy a vyhledání, skriptování a zobrazení naplánované úlohy, ke které je přidružená kterákoli aktivační událost úlohy nebo možnost úlohy.

Viz také

about_Scheduled_Jobs_Basics

about_Scheduled_Jobs_Advanced

about_Scheduled_Jobs_Troubleshooting

Plánovač úloh