Sdílet prostřednictvím


New-JobTrigger

Vytvoří trigger úlohy pro naplánovanou úlohu.

Syntax

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

Description

Rutina New-JobTrigger vytvoří trigger úlohy, který spustí naplánovanou úlohu podle jednorázového nebo opakovaného plánu nebo při výskytu události.

Můžete použít ScheduledJobTrigger objekt, který New-JobTrigger vrátí k nastavení triggeru úlohy pro novou nebo existující naplánovanou úlohu. Trigger úlohy můžete také vytvořit pomocí rutiny Get-JobTrigger, která získá aktivační událost úlohy existující naplánované úlohy, nebo pomocí hodnoty tabulky hash, která představuje aktivační událost úlohy.

Při vytváření triggeru úlohy zkontrolujte výchozí hodnoty možností zadaných rutinou New-ScheduledJobOption. Tyto možnosti, které mají stejné platné a výchozí hodnoty jako odpovídající možnosti v Plánovači úloh, mají vliv na plánování a načasování naplánovaných úloh.

New-JobTrigger je 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 najdete v tématech O produktu v modulu PSScheduledJob. Importujte modul PSScheduledJob a zadejte: Get-Help about_Scheduled* nebo se podívejte about_Scheduled_Jobs.

Tato rutina byla zavedena v Windows PowerShell 3.0.

Příklady

Příklad 1: Jednou plán

PS C:\> New-JobTrigger -Once -At "1/20/2012 3:00 AM"

Tento příkaz používá rutinu New-JobTrigger k vytvoření triggeru úlohy, který spustí naplánovanou úlohu pouze jednou. Hodnota parametru At je řetězec, který Windows PowerShell převede na objekt DateTime. Hodnota parametru At zahrnuje explicitní datum, nikoli pouze čas. Pokud by se datum vynechalo, trigger by se vytvořil s aktuálním datem a časem 3:00, což pravděpodobně představuje čas v minulosti.

Příklad 2: Denní plán

PS C:\> New-JobTrigger -Daily -At "4:15 AM" -DaysInterval 3
Id         Frequency       Time                   DaysOfWeek              Enabled
--         ---------       ----                   ----------              -------
0          Daily           9/21/2012 4:15:00 AM                           True

Tento příkaz vytvoří trigger úlohy, který spustí naplánovanou úlohu každé 3 dny ve 4:15.

Protože hodnota parametru At neobsahuje datum, použije se aktuální datum jako hodnota data v objektu DateTime . Pokud je datum a čas v minulosti, naplánovaná úloha se spustí při dalším výskytu, což je o 3 dny později od hodnoty parametru At .

Příklad 3: Týdenní plán

PS C:\> New-JobTrigger -Weekly -DaysOfWeek Monday, Wednesday, Friday -At "23:00" -WeeksInterval 4
Id Frequency Time                  DaysOfWeek                  Enabled
-- --------- ----                  ----------                  -------
0  Weekly    9/21/2012 11:00:00 PM {Monday, Wednesday, Friday} True

Tento příkaz vytvoří trigger úlohy, který spustí naplánovanou úlohu každé 4 týdny v pondělí, středu a pátek ve 2300 hodin (23:00).

Můžete také zadat hodnotu parametru DaysOfWeek v celých číslech, například -DaysOfWeek 1, 5.

Příklad 4: Plán přihlášení

PS C:\> New-JobTrigger -AtLogOn -User Domain01\Admin01

Tento příkaz vytvoří trigger úlohy, který spustí naplánovanou úlohu pokaždé, když se správce domény přihlásí k počítači.

Příklad 5: Použití náhodného zpoždění

PS C:\> New-JobTrigger -Daily -At 1:00 -RandomDelay 00:20:00

Tento příkaz vytvoří trigger úlohy, který spustí naplánovanou úlohu každý den v 1:00 ráno. Příkaz používá parametr RandomDelay k nastavení maximálního zpoždění na 20 minut. V důsledku toho se úloha spouští každý den mezi 1:00 a 1:20 a interval se mění pseudonáhodně.

Náhodné zpoždění můžete použít pro vzorkování, vyrovnávání zatížení a další úlohy správy. Při nastavování hodnoty zpoždění zkontrolujte efektivní a výchozí hodnoty rutiny New-ScheduledJobOption a koordinujte zpoždění s nastavením možnosti.

Příklad 6: Create trigger úlohy pro novou naplánovanou úlohu

The first command uses the **New-JobTrigger** cmdlet to create a job trigger that starts a job every Monday, Wednesday, and Friday at 12:01 AM. The command saves the job trigger in the $T variable.
PS C:\> $T = New-JobTrigger -Weekly -DaysOfWeek 1,3,5 -At 12:01AM


The second command uses the Register-ScheduledJob cmdlet to create a scheduled job that starts a job every Monday, Wednesday, and Friday at 12:01 AM. The value of the *Trigger* parameter is the trigger that is stored in the $T variable.
PS C:\> Register-ScheduledJob -Name Test-HelpFiles -FilePath C:\Scripts\Test-HelpFiles.ps1 -Trigger $T

Tyto příkazy používají trigger úlohy k vytvoření nové naplánované úlohy.

Příklad 7: Přidání triggeru úlohy do naplánované úlohy

PS C:\> Add-JobTrigger -Name SynchronizeApps -Trigger (New-JobTrigger -Daily -At 3:10AM)

Tento příklad ukazuje, jak přidat trigger úlohy do existující naplánované úlohy. Do libovolné naplánované úlohy můžete přidat více aktivačních událostí úloh.

Příkaz použije rutinu Add-JobTrigger k přidání triggeru úlohy do naplánované úlohy SynchronizeApps. Hodnota parametru Trigger je příkaz New-JobTrigger , který spouští úlohu každý den ve 3:10.

Po dokončení příkazu je synchronizační aplikace naplánovaná úloha, která se spouští v časech určených triggerem úlohy.

Příklad 8: Create triggeru opakující se úlohy

PS C:\> New-JobTrigger -Once -At "09/12/2013 1:00:00" -RepetitionInterval (New-TimeSpan -Hours 1) -RepetitionDuration (New-Timespan -Hours 48)

Tento příkaz vytvoří trigger úlohy, který spustí úlohu každých 60 minut po dobu 48 hodin od 12. září 2013 v 1:00.

Příklad 9: Zastavení triggeru opakující se úlohy

PS C:\> Get-JobTrigger -Name SecurityCheck | Set-JobTrigger -RepetitionInterval 0:00 -RepetitionDuration 0:00

Tento příkaz vynutil zastavení úlohy SecurityCheck, která se aktivuje ke spuštění každých 60 minut, dokud nevyprší platnost triggeru úlohy.

Aby se úloha neopakovala, příkaz použije Get-JobTrigger k získání triggeru úlohy SecurityCheck a rutiny Set-JobTrigger ke změně intervalu opakování a doby trvání opakování triggeru úlohy na nulu (0).

Příklad 10: Create hodinový trigger úlohy

PS C:\> New-JobTrigger -Once -At "9/21/2012 0am" -RepetitionInterval (New-TimeSpan -Hour 12) -RepetitionDuration ([TimeSpan]::MaxValue)

Následující příkaz vytvoří trigger úlohy, který spustí naplánovanou úlohu každých 12 hodin po neomezenou dobu. Plán začíná zítra (21. 9. 2012) o půlnoci (0:00).

Parametry

-At

Spustí úlohu v zadané datum a čas. Zadejte objekt DateTime , například objekt, který vrátí rutina Get-Date, nebo řetězec, který lze převést na datum a čas, například "19. dubna 2012 15:00", "12/31" nebo "3:00". Pokud nezadáte prvek data, například rok, bude datum v triggeru obsahovat odpovídající prvek od aktuálního data.

Při použití parametru Once nastavte hodnotu parametru At na budoucí datum a čas. Vzhledem k tomu, že výchozí datum v objektu DateTime je aktuální datum, pokud zadáte čas před aktuálním časem bez explicitního data, aktivační událost úlohy se vytvoří pro čas v minulosti.

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

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

-AtLogOn

Spustí naplánovanou úlohu při přihlášení zadaných uživatelů k počítači. Pokud chcete určit uživatele, použijte parametr User .

Type:SwitchParameter
Position:0
Default value:False
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-AtStartup

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

Type:SwitchParameter
Position:0
Default value:False
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-Daily

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

Type:SwitchParameter
Position:0
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-DaysInterval

Určuje počet dnů mezi výskyty podle denního plánu. Například hodnota 3 spustí naplánovanou úlohu v 1, 4, 7 a tak dále. Výchozí hodnota je 1.

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

-DaysOfWeek

Určuje dny v týdnu, ve kterých běží týdenní naplánovaná úloha. Zadejte názvy dnů, například Pondělí nebo celá čísla 0–6, kde 0 představuje neděli. Tento parametr je povinný v týdenní sadě parametrů.

Názvy dnů se v triggeru úlohy převedou na jejich celočíselné hodnoty. Když v příkazu uzavřete názvy dnů do uvozovek, uzavřete názvy jednotlivých dnů do samostatných uvozovek, například "Pondělí", "Úterý". Pokud uzavřete více názvů dnů do jedné uvozovky, sečtou se odpovídající celočíselné hodnoty. Například "Pondělí, úterý" (1, 2) má hodnotu "Středa" (3).

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

-Once

Určuje neopakovaný (jednorázový) nebo vlastní plán opakování. Pokud chcete vytvořit plán opakování, použijte parametr Once s parametry RepeatDuration a RepeatInterval .

Type:SwitchParameter
Position:0
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-RandomDelay

Povolí náhodné zpoždění, které začíná naplánovaným časem spuštění, 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í až po čas určený 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 ve <formátu hours>:<minutes>:<seconds> , který se automaticky převede na objekt TimeSpan .

Type:TimeSpan
Position:Named
Default value:00:00:00
Required:False
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, aby se naplánovaná úloha spouštěla opakovaně po neomezenou dobu.

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

-RepetitionDuration

Zopakuje ú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 ten, který vrátí rutina New-TimeSpan, nebo řetězec, který lze převést na objekt časového rozsahu, například 1:05:30.

Pokud chcete úlohu spouštět po neomezenou dobu, přidejte místo toho parametr RepeatIndefinitely .

Pokud chcete úlohu zastavit před vypršením doby trvání opakování aktivace úlohy, nastavte pomocí rutiny Set-JobTrigger hodnotu OpakováníDuration na nulu (0).

Tento parametr je platný pouze v případě, že jsou v příkazu použity parametry Once, At a RepetitionInterval .

Type:TimeSpan
Position:Named
Default value:0
Required:False
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é dvě hodiny. Výchozí hodnota 0 neopakuje úlohu.

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

Tento parametr je platný pouze v případě, že jsou v příkazu použity parametry Once, At a RepetitionDuration .

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

-User

Určuje uživatele, kteří aktivují spuštění AtLogon naplánované úlohy. Do pole UserName (Uživatelské jméno>) nebo <Domain\Username (Doména\Uživatelské jméno>) zadejte jméno uživatele <nebo hvězdičku (*), která bude představovat všechny uživatele. Výchozí hodnota je všichni uživatelé.

Type:String
Position:Named
Default value:All users
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Weekly

Určuje týdenní plán opakovaných úloh. Pomocí dalších parametrů v sadě parametrů Weekly (Týdenní) zadejte podrobnosti plánu.

Type:SwitchParameter
Position:0
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-WeeksInterval

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

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

Vstupy

None

Vstup do této rutiny nelze připojit.

Výstupy

ScheduledJobTrigger

Poznámky

  • Triggery úloh se neukládají na disk. Naplánované úlohy se ale ukládají na disk a pomocí Get-JobTrigger můžete získat trigger úlohy libovolné naplánované úlohy.

  • New-JobTrigger nezabrání ve vytvoření triggeru úlohy, který nespustí naplánovanou úlohu, například jednorázový trigger pro datum v minulosti.

  • Rutina Register-ScheduledJob přijímá objekt ScheduledJobTrigger, například objekt vrácený rutinami New-JobTrigger nebo Get-JobTrigger nebo tabulku hash s hodnotami triggeru.

    K odeslání hashovací tabulky použijte následující klíče.

    @{Frequency="Once" (or Daily, Weekly, AtStartup, AtLogon);At="3am" (nebo jakýkoli platný časový řetězec); DaysOfWeek="Monday", "Wednesday" (nebo jakoukoli kombinaci názvů dnů); Interval=2 (nebo jakýkoli platný interval četnosti); RandomDelay="30minutes" (nebo jakýkoli platný řetězec časového rozsahu); User="Domain1\User01 (nebo libovolného platného uživatele; používá se pouze s hodnotou frekvence AtLogon ) }