Sdílet prostřednictvím


Set-JobTrigger

Změní aktivační událost úlohy naplánované úlohy.

Syntaxe

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 četnosti, kdy se úlohy spouštějí nebo mění z časových plánů na plány aktivované přihlášením nebo spuštěním.

Trigger úlohy definuje opakovaný 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 aktivační události úloh naplánovaných úloh, které se ukládají na disk.

Pokud chcete změnit aktivační událost úlohy naplánované úlohy, začněte pomocí rutiny Get-JobTrigger k získání triggeru úlohy naplánované úlohy. Pak předejte trigger tak, aby Set-JobTrigger nebo uložil trigger do proměnné a pomocí parametru InputObject rutiny Set-JobTrigger identifikujte aktivační událost. 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 trigger, původní vlastnosti triggeru se odstraní. Pokud však změníte hodnoty triggeru, ale ne jeho typ, například změnu dnů v týdenním triggeru, změní se pouze vlastnosti, které zadáte. Všechny ostatní vlastnosti původní aktivační události úlohy se zachovají.

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

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

Tato rutina byla zavedena ve Windows PowerShellu 3.0.

Příklady

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

PS C:\> Get-JobTrigger -Name "DeployPackage"
Id         Frequency       Time                   DaysOfWeek              Enabled
--         ---------       ----                   ----------              -------
1          Weekly          9/29/2011 12:00:00 AM  {Wednesday, Saturday}   True

The second command uses the Get-JobTrigger cmdlet to get the job trigger of the DeployPackage scheduled job. A pipeline operator (|) sends the trigger to the **Set-JobTrigger** cmdlet, which changes the job trigger so that it starts the DeployPackage job on Wednesdays and Sundays. The command uses the *Passthru* parameter to return the trigger after the change.
PS C:\> 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

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

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

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

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

PS C:\> Get-JobTrigger -Name "Inventory"
Id         Frequency       Time                   DaysOfWeek              Enabled
--         ---------       ----                   ----------              -------
1          Daily           9/27/2011 11:00:00 PM                          True
2          AtStartup                                                      True

The second command uses the **Get-JobTrigger** cmdlet to get the *AtStartup* job trigger of the Inventory job. The command uses the *TriggerID* parameter to identify the job trigger. A pipeline operator (|) sends the job trigger to the **Set-JobTrigger** cmdlet, which changes it to a weekly job trigger that runs every four weeks on Monday at midnight. The command uses the *Passthru* parameter to return the trigger after the change.
PS C:\> 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

Tento příklad ukazuje, jak změnit typ triggeru úlohy, který spouští úlohu. Příkazy v tomto příkladu nahradí trigger úlohy AtStartup týdenním triggerem.

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

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

PS C:\> 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 AtLogon úlohy triggery 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 se serverem 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 rutiny Get-JobTrigger, 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 když se změní.

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

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

PS C:\> 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

The second command uses the **TriggerID** parameter of the **Get-JobTrigger** cmdlet to get the *Once* trigger of the SecurityCheck scheduled job. The command pipes the trigger to the Format-List cmdlet, which displays all of the properties of the *Once* job trigger.The output shows that the trigger starts the job once every hour (RepetitionInterval = 1 hour) for one day (RepetitionDuration = 1 day).
PS C:\> 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

The third command changes the repetition interval of the job trigger from one hour to 90 minutes. The command does not return any output.
PS C:\> Get-JobTrigger -Name "SecurityCheck" -TriggerId 3 | Set-JobTrigger -RepetitionInterval (New-TimeSpan -Minutes 90)

The fourth command displays the effect of the change.The output shows that the trigger starts the job once every 90 minutes (RepetitionInterval = 1 hour, 30 minutes) for one day (RepetitionDuration = 1 day).
PS C:\> 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í Po spuštění úlohy naplánované úlohy SecurityCheck každých 60 minut na každých 90 minut. Naplánovaná úloha SecurityCheck má tři triggery úlohy, takže příkazy používají TriggerId parametr rutiny Get-JobTrigger k identifikaci aktivační události úlohy, která se mění.

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

Parametry

-At

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

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 Jednou 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 má za následek aktivační událost úlohy po dobu v minulosti.

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

Typ:DateTime
Position:Named
Default value:None
Vyžadováno:False
Přijmout vstup kanálu:False
Přijmout zástupné znaky:False

-AtLogOn

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

Typ:SwitchParameter
Position:Named
Default value:False
Vyžadováno:False
Přijmout vstup kanálu:False
Přijmout zástupné znaky:False

-AtStartup

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

Typ:SwitchParameter
Position:Named
Default value:False
Vyžadováno:False
Přijmout vstup kanálu:False
Přijmout zástupné znaky:False

-Daily

Určuje plán opakovaných denních úloh. K určení podrobností plánu použijte další parametry v parametru Daily.

Typ:SwitchParameter
Position:Named
Default value:False
Vyžadováno:False
Přijmout vstup kanálu:False
Přijmout zástupné znaky: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 1, 4, 7 atd. Výchozí hodnota je 1.

Typ:Int32
Position:Named
Default value:1
Vyžadováno:False
Přijmout vstup kanálu:False
Přijmout zástupné znaky:False

-DaysOfWeek

Určuje dny v týdnu, kdy se spustí týdenní naplánovaná úloha. Zadejte názvy dnů, například pondělí, čtvrtek, celá čí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 celočíselné hodnoty. Když v příkazu uzavřete názvy dnů do uvozovek, uzavřete název každého dne do samostatných uvozovek, například "Pondělí", "Úterý". Pokud do páru jednoduchých uvozovek uzavřete více názvů dnů, sčítají se odpovídající celočíselné hodnoty. Například "Pondělí, úterý" (1, 2) má za následek hodnotu "Středa" (3).

Typ:DayOfWeek[]
Přípustné hodnoty:Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday
Position:Named
Default value:None
Vyžadováno:False
Přijmout vstup kanálu:False
Přijmout zástupné znaky:False

-InputObject

Určuje aktivační události úlohy. Zadejte proměnnou, která obsahuje ScheduledJobTrigger objekty, nebo zadejte příkaz nebo výraz, který získá ScheduledJobTrigger objekty, například příkaz Get-JobTrigger. Můžete také ScheduledJobTrigger objekt Set-JobTrigger.

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

Typ:ScheduledJobTrigger[]
Position:0
Default value:None
Vyžadováno:True
Přijmout vstup kanálu:True
Přijmout zástupné znaky:False

-Once

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

Typ:SwitchParameter
Position:Named
Default value:False
Vyžadováno:False
Přijmout vstup kanálu:False
Přijmout zástupné znaky:False

-PassThru

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

Typ:SwitchParameter
Position:Named
Default value:False
Vyžadováno:False
Přijmout vstup kanálu:False
Přijmout zástupné znaky: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í do času určeného hodnotou tohoto parametru. Výchozí hodnota, nula (00:00:00), zakáže náhodné zpoždění.

Zadejte objekt časového rozsahu, například objekt vrácený rutinou New-TimeSpan, nebo zadejte hodnotu do <hodin>:<minuty>:<sekund> formátu, který se automaticky převede na objekt časového rozsahu.

Typ:TimeSpan
Position:Named
Default value:00:00:00
Vyžadováno:False
Přijmout vstup kanálu:False
Přijmout zástupné znaky:False

-RepeatIndefinitely

Tento parametr, který je dostupný v prostředí Windows PowerShell 4.0, eliminuje nutnost zadat hodnotu TimeSpan.MaxValue parametru Opakování, aby se naplánovaná úloha spouštěla opakovaně po neomezenou dobu.

Typ:SwitchParameter
Position:Named
Default value:None
Vyžadováno:False
Přijmout vstup kanálu:False
Přijmout zástupné znaky: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í 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ý New-TimeSpan rutina vrátí, nebo řetězec, který lze převést na objekt časového rozsahu, například 1:05:30.

Pokud chcete úlohu spustit neomezeně dlouho, přidejte místo toho parametr RepeatIndefinitely.

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

Pokud chcete změnit dobu trvání opakování nebo interval opakování triggeru úlohy Po úlohy, musí příkaz obsahovat parametry OpakováníInter val i opakování parametry. 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 parametry.

Typ:TimeSpan
Position:Named
Default value:0
Vyžadováno:False
Přijmout vstup kanálu:False
Přijmout zástupné znaky:False

-RepetitionInterval

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

Zadejte objekt časového rozsahu, například objekt, který New-TimeSpan rutina 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 Po úlohy, musí příkaz obsahovat parametry OpakováníInter val i opakování parametry. 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 parametry.

Typ:TimeSpan
Position:Named
Default value:0
Vyžadováno:False
Přijmout vstup kanálu:False
Přijmout zástupné znaky:False

-User

Určuje uživatele, kteří aktivují AtLogon zahájení naplánované úlohy. Zadejte jméno uživatele ve formátu <uživatelské jméno> nebo <Doména\Uživatelské jméno> nebo zadejte hvězdičku (*). Výchozí hodnota je pro všechny uživatele.

Typ:String
Position:Named
Default value:All users
Vyžadováno:False
Přijmout vstup kanálu:False
Přijmout zástupné znaky:False

-Weekly

Určuje týdenní plán úloh. K určení podrobností plánu použijte další parametry v týdenním parametru nastaveném.

Typ:SwitchParameter
Position:Named
Default value:False
Vyžadováno:False
Přijmout vstup kanálu:False
Přijmout zástupné znaky:False

-WeeksInterval

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

Typ:Int32
Position:Named
Default value:1
Vyžadováno:False
Přijmout vstup kanálu:False
Přijmout zástupné znaky:False

Vstupy

ScheduledJobTrigger

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

Výstupy

None or Microsoft.PowerShell.ScheduledJob.ScheduledJobTrigger

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

Poznámky

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