Set-JobTrigger

Změní trigger úlohy naplánované úlohy.

Syntax

Set-JobTrigger
   [-InputObject] <ScheduledJobTrigger[]>
   [-DaysInterval <Int32>]
   [-WeeksInterval <Int32>]
   [-RandomDelay <TimeSpan>]
   [-At <DateTime>]
   [-User <String>]
   [-DaysOfWeek <DayOfWeek[]>]
   [-AtStartup]
   [-AtLogOn]
   [-Once]
   [-RepetitionInterval <TimeSpan>]
   [-RepetitionDuration <TimeSpan>]
   [-RepeatIndefinitely]
   [-Daily]
   [-Weekly]
   [-PassThru]
   [<CommonParameters>]

Description

Rutina Set-JobTrigger změní vlastnosti aktivačních událostí úlohy naplánovaných úloh. Můžete ho použít ke změně času nebo frekvence spuštění úloh nebo ke změně podle časových plánů na plány, které se aktivují přihlášením nebo spuštěním.

Trigger úlohy definuje opakující se plán nebo podmínky pro spuštění naplánované úlohy. I když se triggery úloh neukládají na disk, můžete změnit triggery úloh plánovaných úloh, které jsou uložené na disk.

Pokud chcete změnit trigger úlohy naplánované úlohy, začněte pomocí Get-JobTrigger rutiny k získání triggeru úlohy naplánované úlohy. Potom aktivační událost Set-JobTrigger předejte do proměnné nebo ji uložte do proměnné a pomocí parametru InputObject rutiny Set-JobTrigger aktivační událost identifikujte. Ke změně triggeru úlohy použijte zbývající parametry Set-JobTrigger .

Když změníte typ triggeru úlohy, například změnu triggeru úlohy z denního nebo týdenního triggeru na trigger AtLogon , původní vlastnosti triggeru se odstraní. Pokud ale změníte hodnoty triggeru, ale ne jeho typ, například změnu dnů v týdenním triggeru, změní se jenom vlastnosti, které zadáte. Všechny ostatní vlastnosti původní aktivační události úlohy se zachovají.

Set-JobTriggerje jednou z kolekcí rutin plánování úloh v modulu PSScheduledJob, který je součástí Windows PowerShell.

Další informace o naplánovaných úlohách naleznete v tématu Témata v modulu PSScheduledJob. Importujte modul PSScheduledJob a zadejte: Get-Help about_Scheduled* nebo se podívejte na about_Scheduled_Jobs.

Tato rutina byla zavedena v Windows PowerShell 3.0.

Příklady

Příklad 1: Změna dnů v triggeru úlohy

Tento příklad ukazuje, jak změnit dny v týdenním triggeru úlohy.

Get-JobTrigger -Name "DeployPackage"

Id         Frequency       Time                   DaysOfWeek              Enabled
--         ---------       ----                   ----------              -------
1          Weekly          9/29/2011 12:00:00 AM  {Wednesday, Saturday}   True

Get-JobTrigger -Name "DeployPackage" | Set-JobTrigger -DaysOfWeek "Wednesday", "Sunday" -Passthru

Id         Frequency       Time                   DaysOfWeek              Enabled
--         ---------       ----                   ----------              -------
1          Weekly          9/29/2011 12:00:00 AM  {Wednesday, Sunday}     True

První příkaz použije rutinu Get-JobTrigger k získání triggeru DeployPackage úlohy naplánované úlohy. Výstup ukazuje, že trigger spustí úlohu o půlnoci ve středu a sobotách.

Druhý příkaz použije rutinu Get-JobTrigger k získání triggeru DeployPackage úlohy naplánované úlohy. Operátor kanálu (|) odešle trigger rutině Set-JobTrigger , která změní aktivační událost úlohy tak, aby se úloha spustila DeployPackage ve středu a neděli. Příkaz použije parametr Passthru k vrácení triggeru po změně.

Tento příkaz není povinný; je součástí pouze k zobrazení účinku změny triggeru.

Příklad 2: Změna typu triggeru úlohy

Tento příklad ukazuje, jak změnit typ triggeru úlohy, který spouští úlohu. Příkazy v tomto příkladu AtStartup nahrazují trigger úlohy týdenní aktivační událostí.

Get-JobTrigger -Name "Inventory"

Id         Frequency       Time                   DaysOfWeek              Enabled
--         ---------       ----                   ----------              -------
1          Daily           9/27/2011 11:00:00 PM                          True
2          AtStartup                                                      True

Get-JobTrigger -Name "Inventory" -TriggerID 2 | Set-JobTrigger -Weekly -WeeksInterval 4 -DaysOfWeek Monday -At "12:00 AM"

Id         Frequency       Time                   DaysOfWeek              Enabled
--         ---------       ----                   ----------              -------
1          Daily           9/27/2011 11:00:00 PM                          True
2          Weekly          10/31/2011 12:00:00 AM {Monday}                True

První příkaz použije rutinu Get-JobTrigger k získání triggeru Inventory úlohy naplánované úlohy. Výstup ukazuje, že úloha má dvě aktivační události denně a trigger AtStartup .

Druhý příkaz použije rutinu Get-JobTrigger k získání triggeru Inventory úlohy AtStartup úlohy. Příkaz používá k identifikaci triggeru úlohy parametr TriggerID . Operátor kanálu (|) odešle aktivační událost úlohy rutině Set-JobTrigger , která ji změní na týdenní aktivační událost úlohy, která se spouští každé čtyři týdny v pondělí o půlnoci. Příkaz použije parametr Passthru k vrácení triggeru po změně.

Tento příkaz není povinný; je součástí pouze k zobrazení účinku změny triggeru.

Příklad 3: Změna uživatele na triggeru vzdálené úlohy

Invoke-Command -ComputerName "Server01" -ScriptBlock {Get-ScheduledJob | Get-JobTrigger | Where-Object {$_.User} | Set-JobTrigger -User "Domain01/Admin02"}

Tento příkaz změní uživatele ve všech triggerech úlohy AtLogon naplánovaných úloh na počítači Server01.

Příkaz používá rutinu Invoke-Command ke spuštění příkazu na počítači Server01.

Vzdálený příkaz začíná příkazem Get-ScheduledJob , který získá všechny naplánované úlohy v počítači. Naplánované úlohy se předávají do Get-JobTrigger rutiny, která získá aktivační události úlohy naplánovaných úloh. Každá aktivační událost úlohy obsahuje vlastnost JobDefinition , která obsahuje naplánovanou úlohu, takže aktivační událost zůstane přidružená k naplánované úloze i v případě, že se změní.

Aktivační události úlohy se předávají do Where-Object rutiny, která získá aktivační události úlohy, které mají vlastnost User . Aktivační události vybrané úlohy se předávají do Set-JobTrigger rutiny, která změní uživatele na Domain01\Admin02.

Příklad 4: Změna jedné z mnoha aktivačních událostí úlohy

Get-JobTrigger -Name "SecurityCheck"

Id         Frequency       Time                   DaysOfWeek              Enabled
--         ---------       ----                   ----------              -------
1          Daily           4/24/2013 3:00:00 AM                           True
2          Weekly          4/24/2013 4:00:00 PM   {Sunday}                True
3          Once            4/24/2013 4:00:00 PM                           True

Get-JobTrigger -Name "SecurityCheck" -TriggerID 3 | Format-List -Property *

At                 : 4/24/2012 4:00:00 PM
DaysOfWeek         :
Interval           : 1
Frequency          : Once
RandomDelay        : 00:00:00
RepetitionInterval : 01:00:00
RepetitionDuration : 1.00:00:00
User               :
Id                 : 3
Enabled            : True
JobDefinition      : Microsoft.PowerShell.ScheduledJob.ScheduledJobDefinition

Get-JobTrigger -Name "SecurityCheck" -TriggerId 3 | Set-JobTrigger -RepetitionInterval (New-TimeSpan -Minutes 90)
Get-JobTrigger -Name "SecurityCheck" -TriggerID 3 | Format-List -Property *

At                 : 4/24/2012 4:00:00 PM
DaysOfWeek         :
Interval           : 1
Frequency          : Once
RandomDelay        : 00:00:00
RepetitionInterval : 01:30:00
RepetitionDuration : 1.00:00:00
User               :
Id                 : 3
Enabled            : True
JobDefinition      : Microsoft.PowerShell.ScheduledJob.ScheduledJobDefinition

Příkazy v tomto příkladu změní interval opakování triggeru úlohy Once naplánované SecurityCheck úlohy každých 60 minut na každých 90 minut. Naplánovaná SecurityCheck úloha má tři triggery úloh, takže příkazy používají parametr Get-JobTriggerTriggerId rutiny k identifikaci aktivační události úlohy, která se mění.

První příkaz použije rutinu Get-JobTrigger k získání všech triggerů SecurityCheck úlohy naplánované úlohy. Výstup, který zobrazuje ID aktivačních událostí úlohy, odhalí, že aktivační událost úlohy OnceID3.

Druhý příkaz použije k získání aktivační události naplánované úlohy parametr Get-JobTriggerTriggerID rutinySecurityCheck. Příkaz předá aktivační událost do Format-List rutiny, která zobrazí všechny vlastnosti triggeru úlohy Once . Výstup ukazuje, že trigger spustí úlohu jednou za hodinu (OpakováníInterval je 1 hodina) pro jeden den (opakování je 1 den).

Třetí příkaz změní interval opakování triggeru úlohy z jedné hodiny na 90 minut. Příkaz nevrací žádný výstup.

Čtvrtý příkaz zobrazí efekt změny. Výstup ukazuje, že aktivační událost spustí úlohu jednou za 90 minut (opakování je 1 hodina, 30 minut) po dobu jednoho dne (Doba opakování je 1 den).

Parametry

-At

Spustí úlohu v zadaném datu a čase. Zadejte objekt DateTime , například objekt, který rutina Get-Date vrátí, nebo řetězec, který lze převést na čas, například April 19, 2012 15:00, 12/31/2013 9:00 PMnebo 3am.

Pokud nezadáte prvek objektu DateTime , například sekundy, tento prvek triggeru úlohy se nezmění. Pokud původní aktivační událost úlohy neobsahuje objekt DateTime a vynecháte prvek, trigger úlohy se vytvoří s odpovídajícím prvkem z aktuálního data a času.

Při použití parametru Once nastavte hodnotu parametru At na konkrétní datum a čas. Vzhledem k tomu, že výchozí datum v objektu DateTime je aktuální datum, nastavení času před aktuálním časem bez explicitního data vede k triggeru úlohy na čas v minulosti.

Objekty DateTime a řetězce převedené na objekty DateTime se automaticky upraví tak, aby byly kompatibilní s formáty data a času vybrané pro místní počítač v oblasti a jazyce v Ovládací panely.

Type:DateTime
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False

-AtLogOn

Spustí naplánovanou úlohu, když se zadaná uživatelé přihlásí k počítači. Chcete-li zadat uživatele, použijte parametr User .

Type:SwitchParameter
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False

-AtStartup

Spustí naplánovanou úlohu při spuštění Windows.

Type:SwitchParameter
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False

-Daily

Určuje plán opakovaných denních úloh. K určení podrobností plánu použijte další parametry v sadě parametrů Denně .

Type:SwitchParameter
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False

-DaysInterval

Určuje počet dní mezi výskyty v denním plánu. Například hodnota 3 spustí naplánovanou úlohu ve dnech 1atd47. Výchozí hodnota je 1.

Type:Int32
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False

-DaysOfWeek

Určuje dny v týdnu, ve kterých se spouští týdenní naplánovaná úloha. Zadejte názvy dnů, například Monday, Thursdaycelá čísla 0-6, kde 0 představuje neděli nebo hvězdičku (*) představující každý den. Tento parametr je vyžadován v sadě týdenních parametrů.

Názvy dnů se v triggeru úlohy převedou na jejich celočíselné hodnoty. Když uzavřete názvy dnů do uvozovek v příkazu, uzavřete každý den název do samostatných uvozovek, například "Monday", "Tuesday". Pokud uzavřete více názvů dnů do páru jednoduchých uvozovek, sčítají se odpovídající celočíselné hodnoty. Výsledkem je například "Monday, Tuesday"1 + 2hodnota Wednesday (3).

Type:DayOfWeek[]
Accepted values:Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False

-InputObject

Určuje aktivační události úlohy. Zadejte proměnnou obsahující objekty ScheduledJobTrigger nebo zadejte příkaz nebo výraz, který získá objekty ScheduledJobTrigger , například Get-JobTrigger příkaz. Do objektu ScheduledJobTrigger lze také převést objekt Set-JobTrigger.

Pokud zadáte více aktivačních událostí úlohy, Set-JobTrigger provede stejné změny všech aktivačních událostí úlohy.

Type:Microsoft.PowerShell.ScheduledJob.ScheduledJobTrigger[]
Position:0
Default value:None
Accept pipeline input:True
Accept wildcard characters:False

-Once

Určuje neopakovaný (jednorázový) plán.

Type:SwitchParameter
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False

-PassThru

Vrátí aktivační události úlohy, které se změnily. Ve výchozím nastavení tato rutina negeneruje žádný výstup.

Type:SwitchParameter
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False

-RandomDelay

Povolí náhodné zpoždění, které začíná v naplánovaném čase zahájení a nastaví maximální hodnotu zpoždění. Délka zpoždění je nastavena pseudonáhodně pro každé spuštění a liší se od žádného zpoždění po dobu určenou hodnotou tohoto parametru. Výchozí hodnota, nula (00:00:00), zakáže náhodné zpoždění.

Zadejte objekt časového rozpětí, například objekt vrácený rutinou New-TimeSpan , nebo zadejte hodnotu ve <hours>:<minutes>:<seconds> formátu, která se automaticky převede na objekt časového rozsahu.

Type:TimeSpan
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False

-RepeatIndefinitely

Tento parametr, který je k dispozici od Windows PowerShell 4.0, eliminuje nutnost zadat hodnotu TimeSpan.MaxValue pro parametr RepetitionDuration pro opakované spuštění naplánované úlohy po neomezenou dobu.

Type:SwitchParameter
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False

-RepetitionDuration

Opakuje úlohu, dokud nevyprší zadaný čas. Frekvence opakování je určena hodnotou parametru RepetitionInterval . Pokud je například hodnota OpakováníInterval 5 minut a hodnota OpakováníDuration je 2 hodiny, úloha se aktivuje každých pět minut po dobu dvou hodin.

Zadejte objekt časového rozsahu, například objekt, který rutina New-TimeSpan vrátí, nebo řetězec, který lze převést na objekt časového rozsahu, například 1:05:30.

Pokud chcete spustit úlohu na neomezenou dobu, přidejte místo toho parametr RepeatIndefinitely .

Chcete-li zastavit úlohu před vypršením doby trvání opakování triggeru úlohy, nastavte hodnotu Opakování na nulu (0).

Pokud chcete změnit dobu trvání opakování nebo interval opakování triggeru úlohy Jednou , musí příkaz obsahovat parametry RepetitionInterval i RepetitionDuration . Pokud chcete změnit dobu trvání opakování nebo intervaly opakování jiných typů aktivačních událostí úlohy, musí příkaz obsahovat parametry Once, At, RepetitionInterval a RepetitionDuration .

Type:TimeSpan
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False

-RepetitionInterval

Zopakuje úlohu v zadaném časovém intervalu. Pokud je například hodnota tohoto parametru 2 hodiny, úloha se aktivuje každých dvě hodiny. Výchozí hodnota , 0neopakuje úlohu.

Zadejte objekt časového rozsahu, například objekt, který rutina New-TimeSpan vrátí, nebo řetězec, který lze převést na objekt časového rozsahu, například 1:05:30.

Pokud chcete změnit dobu trvání opakování nebo interval opakování triggeru úlohy Jednou , musí příkaz obsahovat parametry RepetitionInterval i RepetitionDuration . Pokud chcete změnit dobu trvání opakování nebo intervaly opakování jiných typů aktivačních událostí úlohy, musí příkaz obsahovat parametry Once, At, RepetitionInterval a RepetitionDuration .

Type:TimeSpan
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False

-User

Určuje uživatele, kteří aktivují spuštění AtLogon naplánované úlohy. Zadejte jméno uživatele ve <UserName> formátu nebo <Domain>\<Username> zadejte hvězdičku (*), která bude představovat všechny uživatele. Výchozí hodnota je pro všechny uživatele.

Type:String
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False

-Weekly

Určuje opakovaný týdenní plán úlohy. K určení podrobností plánu použijte další parametry v sadě týdenních parametrů.

Type:SwitchParameter
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False

-WeeksInterval

Určuje počet týdnů mezi výskyty v týdenním plánu úlohy. Například hodnota 3 začíná naplánovanou úlohu v týdnech 1atd47. Výchozí hodnota je 1.

Type:Int32
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False

Vstupy

Microsoft.PowerShell.ScheduledJob.ScheduledJobTrigger

Můžete připojit více aktivačních událostí úlohy do Set-JobTrigger.

Výstupy

None or Microsoft.PowerShell.ScheduledJob.ScheduledJobTrigger

Když použijete parametr Passthru , Set-JobTrigger vrátí aktivační události úlohy, které byly změněny. Jinak tato rutina negeneruje žádný výstup.

Poznámky

  • Triggery úloh mají vlastnost JobDefinition , která je přidruží k naplánované úloze. Když změníte trigger úlohy naplánované úlohy, úloha se změní. K použití změněné aktivační události pro naplánovanou úlohu nemusíte použít Set-ScheduledJob příkaz.