Set-JobTrigger

Ändrar jobbutlösaren för ett schemalagt jobb.

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

Cmdleten Set-JobTrigger ändrar egenskaperna för jobbutlösarna för schemalagda jobb. Du kan använda den för att ändra den tid eller frekvens där jobben startar eller för att ändra från ett tidsbaserat schema till scheman som utlöses av en inloggning eller start.

En jobbutlösare definierar ett återkommande schema eller villkor för att starta ett schemalagt jobb. Även om jobbutlösare inte sparas på disk kan du ändra jobbutlösare för schemalagda jobb, som sparas till disk.

Om du vill ändra en jobbutlösare för ett schemalagt jobb börjar du med att använda cmdleten Get-JobTrigger för att hämta jobbutlösaren för ett schemalagt jobb. Skicka sedan utlösaren till Set-JobTrigger eller spara utlösaren i en variabel och använd parametern Set-JobTriggerInputObject för cmdleten för att identifiera utlösaren. Använd de återstående parametrarna Set-JobTrigger för för att ändra jobbutlösaren.

När du ändrar typen av jobbutlösare, till exempel att ändra en jobbutlösare från en daglig eller veckovis utlösare till en AtLogon-utlösare , tas de ursprungliga utlösaregenskaperna bort. Men om du ändrar värdena för utlösaren, men inte dess typ, till exempel att ändra dagar i en veckoutlösare, ändras bara de egenskaper som du anger. Alla andra egenskaper för den ursprungliga jobbutlösaren behålls.

Set-JobTriggerär en av en samling cmdletar för jobbschemaläggning i modulen PSScheduledJob som ingår i Windows PowerShell.

Mer information om schemalagda jobb finns i Om ämnen i modulen PSScheduledJob. Importera modulen PSScheduledJob och skriv sedan: Get-Help about_Scheduled* eller se about_Scheduled_Jobs.

Denna cmdlet introducerades i Windows PowerShell 3.0.

Exempel

Exempel 1: Ändra dagarna i en jobbutlösare

Det här exemplet visar hur du ändrar dagarna i en veckovis jobbutlösare.

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

Det första kommandot använder cmdleten Get-JobTrigger för att hämta jobbutlösaren för det DeployPackage schemalagda jobbet. Utdata visar att utlösaren startar jobbet vid midnatt på onsdagar och lördagar.

Det andra kommandot använder cmdleten Get-JobTrigger för att hämta jobbutlösaren för det DeployPackage schemalagda jobbet. En pipelineoperator (|) skickar utlösaren till cmdleten Set-JobTrigger , som ändrar jobbutlösaren så att den DeployPackage startar jobbet på onsdagar och söndagar. Kommandot använder parametern Passthru för att returnera utlösaren efter ändringen.

Det här kommandot krävs inte. den ingår bara för att visa effekten av utlösarändringen.

Exempel 2: Ändra jobbutlösartypen

Det här exemplet visar hur du ändrar vilken typ av jobbutlösare som startar ett jobb. Kommandona i det här exemplet ersätter en AtStartup jobbutlösare med en veckoutlösare.

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

Det första kommandot använder cmdleten Get-JobTrigger för att hämta jobbutlösaren för det Inventory schemalagda jobbet. Utdata visar att jobbet har två utlösare per dag och en AtStartup-utlösare .

Det andra kommandot använder cmdleten Get-JobTrigger för att hämta jobbets AtStartup-jobbutlösareInventory. Kommandot använder parametern TriggerID för att identifiera jobbutlösaren. En pipelineoperator (|) skickar jobbutlösaren till cmdleten Set-JobTrigger , som ändrar den till en veckovis jobbutlösare som körs var fjärde vecka på måndag vid midnatt. Kommandot använder parametern Passthru för att returnera utlösaren efter ändringen.

Det här kommandot krävs inte. den ingår bara för att visa effekten av utlösarändringen.

Exempel 3: Ändra användaren på en fjärrjobbsutlösare

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

Det här kommandot ändrar användaren i alla AtLogon-jobbutlösare för schemalagda jobb på Server01-datorn.

Kommandot använder cmdleten Invoke-Command för att köra ett kommando på Server01-datorn.

Fjärrkommandot börjar med ett Get-ScheduledJob kommando som hämtar alla schemalagda jobb på datorn. De schemalagda jobben skickas till cmdleten Get-JobTrigger , som hämtar jobbutlösarna för de schemalagda jobben. Varje jobbutlösare innehåller en JobDefinition-egenskap som innehåller det schemalagda jobbet, så utlösaren förblir associerad med det schemalagda jobbet även när det ändras.

Jobbutlösarna skickas till cmdleten Where-Object , som hämtar jobbutlösare som har egenskapen Användare . De valda jobbutlösarna skickas till cmdleten Set-JobTrigger , vilket ändrar användaren till Domain01\Admin02.

Exempel 4: Ändra en av många jobbutlösare

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

Kommandona i det här exemplet ändrar upprepningsintervallet för jobbutlösaren En gång för SecurityCheck schemalagt jobb från var 60:e minut till var 90:e minut. Det SecurityCheck schemalagda jobbet har tre jobbutlösare, så kommandona använder parametern TriggerId för cmdleten Get-JobTrigger för att identifiera jobbutlösaren som ändras.

Det första kommandot använder cmdleten Get-JobTrigger för att hämta alla jobbutlösare för det SecurityCheck schemalagda jobbet. Utdata, som visar ID:na för jobbutlösarna, visar att utlösaren Once job har ID3:t .

Det andra kommandot använder parametern TriggerID för cmdleten Get-JobTrigger för att hämta utlösaren Once (En gång ) för det SecurityCheck schemalagda jobbet. Kommandot skickar utlösaren till cmdleten Format-List , som visar alla egenskaper för utlösaren Once job ( En gång ). Utdata visar att utlösaren startar jobbet en gång i timmen (RepetitionInterval är 1 timme) under en dag (RepetitionDuration är 1 dag).

Det tredje kommandot ändrar upprepningsintervallet för jobbutlösaren från en timme till 90 minuter. Kommandot returnerar inga utdata.

Det fjärde kommandot visar effekten av ändringen. Utdata visar att utlösaren startar jobbet en gång var 90:e minut (RepetitionInterval är 1 timme, 30 minuter) för en dag (RepetitionDuration är 1 dag).

Parametrar

-At

Startar jobbet vid angivet datum och tid. Ange ett DateTime-objekt , till exempel ett som cmdleten Get-Date returnerar, eller en sträng som kan konverteras till en tid, till exempel April 19, 2012 15:00, 12/31/2013 9:00 PMeller 3am.

Om du inte anger ett element i DateTime-objektet , till exempel sekunder, ändras inte det elementet i jobbutlösaren. Om den ursprungliga jobbutlösaren inte innehöll något DateTime-objekt och du utelämnar ett element, skapas jobbutlösaren med motsvarande element från aktuellt datum och tid.

När du använder parametern Once anger du värdet för parametern At till ett visst datum och en viss tid. Eftersom standarddatumet i ett DateTime-objekt är det aktuella datumet, resulterar en tid före den aktuella tiden utan ett uttryckligt datum i en jobbutlösare för en tid i det förflutna.

DateTime-objekt och strängar som konverteras till DateTime-objekt justeras automatiskt för att vara kompatibla med de datum- och tidsformat som valts för den lokala datorn i Region och Språk i Kontrollpanelen.

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

-AtLogOn

Startar det schemalagda jobbet när de angivna användarna loggar in på datorn. Om du vill ange en användare använder du parametern Användare .

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

-AtStartup

Startar det schemalagda jobbet när Windows startar.

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

-Daily

Anger ett återkommande dagligt jobbschema. Använd de andra parametrarna i den dagliga parameteruppsättningen för att ange schemainformationen.

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

-DaysInterval

Anger antalet dagar mellan förekomster enligt ett dagligt schema. Till exempel startar värdet 3 för det schemalagda jobbet på dagar 1, 4och 7 så vidare. Standardvärdet är 1.

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

-DaysOfWeek

Anger de veckodagar som ett veckovis schemalagt jobb körs på. Ange dagnamn, till exempel Monday, Thursdayheltal 06-, där 0 representerar söndag eller en asterisk (*) som ska representeras varje dag. Den här parametern krävs i parameteruppsättningen Weekly .

Dagnamn konverteras till sina heltalsvärden i jobbutlösaren. När du omger dagnamn inom citattecken i ett kommando omger du varje dags namn med separata citattecken, till exempel "Monday", "Tuesday". Om du omger flera dagnamn i ett enkelt citatteckenpar summeras motsvarande heltalsvärden. Till exempel "Monday, Tuesday" resulterar (1 + 2) i värdet 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

Anger jobbutlösare. Ange en variabel som innehåller ScheduledJobTrigger-objekt eller skriv ett kommando eller uttryck som hämtar ScheduledJobTrigger-objekt , till exempel ett Get-JobTrigger kommando. Du kan också skicka ett ScheduledJobTrigger-objekt till Set-JobTrigger.

Om du anger flera jobbutlösare Set-JobTrigger gör du samma ändringar i alla jobbutlösare.

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

-Once

Anger ett schema som inte är återkommande (en gång).

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

-PassThru

Returnerar de jobbutlösare som har ändrats. Som standard genererar denna cmdlet inga utdata.

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

-RandomDelay

Aktiverar en slumpmässig fördröjning som börjar vid den schemalagda starttiden och anger värdet för maximal fördröjning. Fördröjningens längd anges pseudo-slumpmässigt för varje start och varierar från ingen fördröjning till den tid som anges av värdet för den här parametern. Standardvärdet, noll (00:00:00), inaktiverar den slumpmässiga fördröjningen.

Ange ett tidsintervallobjekt, till exempel ett som returneras av cmdleten New-TimeSpan , eller ange ett värde i <hours>:<minutes>:<seconds> format som automatiskt konverteras till ett tidsintervallobjekt.

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

-RepeatIndefinitely

Den här parametern, som är tillgänglig från Windows PowerShell 4.0, eliminerar behovet av att ange ett TimeSpan.MaxValue-värde för parametern RepetitionDuration för att köra ett schemalagt jobb upprepade gånger under obegränsad tid.

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

-RepetitionDuration

Upprepar jobbet tills den angivna tiden går ut. Upprepningsfrekvensen bestäms av värdet för parametern RepetitionInterval . Om värdet för RepetitionInterval till exempel är 5 minuter och värdet för RepetitionDuration är 2 timmar utlöses jobbet var femte minut i två timmar.

Ange ett tidsintervallobjekt, till exempel ett som cmdleten New-TimeSpan returnerar eller en sträng som kan konverteras till ett tidsintervallobjekt, till exempel 1:05:30.

Om du vill köra ett jobb på obestämd tid lägger du till parametern RepeatIndefinitely i stället.

Om du vill stoppa ett jobb innan varaktigheten för upprepningen av jobbutlösaren upphör att gälla anger du värdet upprepningsduration till noll (0).

Om du vill ändra upprepningens varaktighet eller upprepningsintervall för en Once job trigger (En gång-jobbutlösare ) måste kommandot innehålla parametrarna RepetitionInterval och RepetitionDuration . Om du vill ändra upprepningens varaktighet eller upprepningsintervall för andra typer av jobbutlösare måste kommandot innehålla parametrarna Once, At, RepetitionInterval och RepetitionDuration .

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

-RepetitionInterval

Upprepar jobbet med det angivna tidsintervallet. Om värdet för den här parametern till exempel är 2 timmar utlöses jobbet varannan timme. Standardvärdet, 0, upprepar inte jobbet.

Ange ett tidsintervallobjekt, till exempel ett som cmdleten New-TimeSpan returnerar eller en sträng som kan konverteras till ett tidsintervallobjekt, till exempel 1:05:30.

Om du vill ändra upprepningens varaktighet eller upprepningsintervall för en Once job trigger (En gång-jobbutlösare ) måste kommandot innehålla parametrarna RepetitionInterval och RepetitionDuration . Om du vill ändra upprepningens varaktighet eller upprepningsintervall för andra typer av jobbutlösare måste kommandot innehålla parametrarna Once, At, RepetitionInterval och RepetitionDuration .

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

-User

Anger de användare som utlöser en AtLogon-start för ett schemalagt jobb. Ange namnet på en användare i <UserName> eller <Domain>\<Username> format eller ange en asterisk (*) som representerar alla användare. Standardvärdet är alla användare.

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

-Weekly

Anger ett återkommande jobbschema varje vecka. Använd de andra parametrarna i parameteruppsättningen Weekly för att ange schemainformationen.

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

-WeeksInterval

Anger antalet veckor mellan förekomster enligt ett jobbschema varje vecka. Till exempel startar värdet 3 för det schemalagda jobbet på veckor 1, 4och 7 så vidare. Standardvärdet är 1.

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

Indata

Microsoft.PowerShell.ScheduledJob.ScheduledJobTrigger

Du kan skicka flera jobbutlösare till Set-JobTrigger.

Utdata

None or Microsoft.PowerShell.ScheduledJob.ScheduledJobTrigger

När du använder parametern Set-JobTriggerPassthru returnerar de jobbutlösare som har ändrats. Annars genererar denna cmdlet inga utdata.

Kommentarer

  • Jobbutlösare har en JobDefinition-egenskap som associerar dem med det schemalagda jobbet. När du ändrar jobbutlösaren för ett schemalagt jobb ändras jobbet. Du behöver inte använda ett Set-ScheduledJob kommando för att tillämpa den ändrade utlösaren på det schemalagda jobbet.