Dela via


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 InputObject i cmdleten Set-JobTrigger för att identifiera utlösaren. Använd de återstående parametrarna för Set-JobTrigger 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ärden 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 PSScheduledJob-modulen 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

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

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

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

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

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

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.

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

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

PS C:\> 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 , som ändrar användaren till Domain01\Admin02.

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

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

Kommandona i det här exemplet ändrar upprepningsintervallet för jobbutlösaren Once (En gång ) för Det schemalagda jobbet SecurityCheck från var 60:e minut till var 90:e minut. Det schemalagda jobbet SecurityCheck har tre jobbutlösare, så kommandona använder parametern TriggerId i 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 schemalagda jobbet SecurityCheck. Utdata, som visar ID:t för jobbutlösarna, visar att utlösaren Once job ( En gång ) har ett ID på 3.

Parametrar

-At

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

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
Required:False
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:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-AtStartup

Startar det schemalagda jobbet när Windows startar.

Type:SwitchParameter
Position:Named
Default value:False
Required:False
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:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-DaysInterval

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

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

-DaysOfWeek

Anger de veckodagar som ett veckovis schemalagt jobb körs på. Ange dagnamn, till exempel måndag, torsdag, heltal 0–6, 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 "Måndag", "Tisdag". Om du omger flera dagnamn i ett enkelt citatteckenpar summeras motsvarande heltalsvärden. Till exempel resulterar "Måndag, Tisdag" (1, 2) i värdet "Onsdag" (3).

Type:DayOfWeek[]
Accepted values:Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday
Position:Named
Default value:None
Required:False
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 gör Set-JobTrigger samma ändringar i alla jobbutlösare.

Type:ScheduledJobTrigger[]
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-Once

Anger ett schema som inte återkommer (en gång).

Type:SwitchParameter
Position:Named
Default value:False
Required:False
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:False
Required:False
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 <formatet hours>:<minutes>:<seconds> , som automatiskt konverteras till ett tidsintervallobjekt.

Type:TimeSpan
Position:Named
Default value:00:00:00
Required:False
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
Required:False
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 UpprepningDuration är 2 timmar utlöses jobbet var femte minut i två timmar.

Ange ett tidsintervallobjekt, till exempel ett objekt 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 upprepning av jobbutlösaren upphör att gälla anger du upprepningsvärdet 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:0
Required:False
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 objekt 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:0
Required:False
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 <formatet Användarnamn> eller <Domän\Användarnamn> eller ange en asterisk (*) som representerar alla användare. Standardvärdet är alla användare.

Type:String
Position:Named
Default value:All users
Required:False
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:False
Required:False
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 det schemalagda jobbet vecka 1, 4, 7 och så vidare. Standardvärdet är 1.

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

Indata

ScheduledJobTrigger

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

Utdata

None or Microsoft.PowerShell.ScheduledJob.ScheduledJobTrigger

När du använder passthru-parameternreturnerar Set-JobTrigger de jobbutlösare som har ändrats. Annars genererar denna cmdlet inga utdata.

Kommentarer

  • Jobbutlösare har en JobDefintion-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.