Set-JobTrigger

Hiermee wijzigt u de taaktrigger van een geplande taak.

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

De Set-JobTrigger cmdlet wijzigt de eigenschappen van de taaktriggers van geplande taken. U kunt deze gebruiken om de tijd of frequentie te wijzigen waarop de taken beginnen of om te veranderen van een schema op basis van tijd tot schema's die worden geactiveerd door een aanmelding of opstartbewerking.

Een taaktrigger definieert een terugkerend schema of voorwaarden voor het starten van een geplande taak. Hoewel taaktriggers niet op schijf worden opgeslagen, kunt u de taaktriggers van geplande taken wijzigen, die op schijf worden opgeslagen.

Als u een taaktrigger van een geplande taak wilt wijzigen, begint u met de Get-JobTrigger cmdlet om de taaktrigger van een geplande taak op te halen. Sluis vervolgens de trigger door naar Set-JobTrigger of sla deze op in een variabele en gebruik de parameter InputObject van Set-JobTrigger de cmdlet om de trigger te identificeren. Gebruik de resterende parameters om Set-JobTrigger de taaktrigger te wijzigen.

Wanneer u het type taaktrigger wijzigt, zoals het wijzigen van een taaktrigger van een dagelijkse of wekelijkse trigger in een AtLogon-trigger , worden de oorspronkelijke triggereigenschappen verwijderd. Als u echter de waarden van de trigger wijzigt, maar niet het type, zoals het wijzigen van de dagen in een wekelijkse trigger, worden alleen de eigenschappen die u opgeeft, gewijzigd. Alle andere eigenschappen van de oorspronkelijke taaktrigger blijven behouden.

Set-JobTrigger is een van een verzameling cmdlets voor taakplanning in de PSScheduledJob-module die is opgenomen in Windows PowerShell.

Zie de onderwerpen Over geplande taken in de PSScheduledJob-module voor meer informatie over geplande taken. Importeer de PSScheduledJob-module en typ: Get-Help about_Scheduled* of zie about_Scheduled_Jobs.

Deze cmdlet is geïntroduceerd in Windows PowerShell 3.0.

Voorbeelden

Voorbeeld 1: De dagen in een taaktrigger wijzigen

In dit voorbeeld ziet u hoe u de dagen in een wekelijkse taaktrigger wijzigt.

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

De eerste opdracht gebruikt de Get-JobTrigger cmdlet om de taaktrigger van de DeployPackage geplande taak op te halen. De uitvoer laat zien dat de trigger de taak start om middernacht op woensdag en zaterdag.

De tweede opdracht gebruikt de Get-JobTrigger cmdlet om de taaktrigger van de DeployPackage geplande taak op te halen. Een pijplijnoperator (|) verzendt de trigger naar de Set-JobTrigger cmdlet, waarmee de taaktrigger wordt gewijzigd, zodat de DeployPackage taak op woensdag en zondag wordt gestart. De opdracht gebruikt de parameter Passthru om de trigger na de wijziging te retourneren.

Deze opdracht is niet vereist; het is alleen opgenomen om het effect van de triggerwijziging weer te geven.

Voorbeeld 2: het type taaktrigger wijzigen

In dit voorbeeld ziet u hoe u het type taaktrigger wijzigt waarmee een taak wordt gestart. De opdrachten in dit voorbeeld vervangen een AtStartup taaktrigger door een wekelijkse trigger.

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

De eerste opdracht gebruikt de Get-JobTrigger cmdlet om de taaktrigger van de Inventory geplande taak op te halen. In de uitvoer ziet u dat de taak twee triggers per dag en een AtStartup-trigger heeft.

De tweede opdracht gebruikt de Get-JobTrigger cmdlet om de AtStartup-taaktrigger van de Inventory taak op te halen. De opdracht gebruikt de parameter TriggerID om de taaktrigger te identificeren. Een pijplijnoperator (|) verzendt de taaktrigger naar de Set-JobTrigger cmdlet, waardoor deze wordt gewijzigd in een wekelijkse taaktrigger die elke vier weken op maandag om middernacht wordt uitgevoerd. De opdracht gebruikt de parameter Passthru om de trigger na de wijziging te retourneren.

Deze opdracht is niet vereist; het is alleen opgenomen om het effect van de triggerwijziging weer te geven.

Voorbeeld 3: de gebruiker wijzigen op een externe taaktrigger

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

Met deze opdracht wordt de gebruiker gewijzigd in alle AtLogon-taaktriggers van geplande taken op de Server01-computer.

De opdracht gebruikt de Invoke-Command cmdlet om een opdracht uit te voeren op de Server01-computer.

De externe opdracht begint met een Get-ScheduledJob opdracht waarmee alle geplande taken op de computer worden uitgevoerd. De geplande taken worden doorgesluisd naar de Get-JobTrigger cmdlet, waarmee de taaktriggers van de geplande taken worden opgehaald. Elke taaktrigger bevat een eigenschap JobDefinition die de geplande taak bevat, dus de trigger blijft gekoppeld aan de geplande taak, zelfs wanneer deze wordt gewijzigd.

De taaktriggers worden doorgesluisd naar de Where-Object cmdlet, waarmee taaktriggers worden opgehaald die de eigenschap Gebruiker hebben. De geselecteerde taaktriggers worden doorgesluisd naar de Set-JobTrigger cmdlet, waardoor de gebruiker wordt Domain01\Admin02gewijzigd in .

Voorbeeld 4: Een van de vele taaktriggers wijzigen

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

Met de opdrachten in dit voorbeeld wordt het herhalingsinterval van de taaktrigger SecurityCheck Eenmaal om de 60 minuten gewijzigd in elke 90 minuten. De SecurityCheck geplande taak heeft drie taaktriggers, dus de opdrachten gebruiken de Parameter TriggerId van de Get-JobTrigger cmdlet om de taaktrigger te identificeren die wordt gewijzigd.

De eerste opdracht gebruikt de Get-JobTrigger cmdlet om alle taaktriggers van de SecurityCheck geplande taak op te halen. De uitvoer, waarin de id's van de taaktriggers worden weergegeven, laat zien dat de taaktrigger eenmaal een id van 3heeft.

De tweede opdracht gebruikt de parameter TriggerID van de Get-JobTrigger cmdlet om de eenmaal geactiveerde SecurityCheck taak op te halen. De opdracht geeft de trigger door aan de Format-List cmdlet, waarin alle eigenschappen van de taaktrigger Eenmaal worden weergegeven. De uitvoer laat zien dat de trigger de taak eenmaal per uur start (Herhalingsinterval is 1 uur) voor één dag (Herhalingsduration is 1 dag).

De derde opdracht wijzigt het herhalingsinterval van de taaktrigger van één uur in 90 minuten. De opdracht retourneert geen uitvoer.

Met de vierde opdracht wordt het effect van de wijziging weergegeven. De uitvoer laat zien dat de trigger de taak eenmaal om de 90 minuten start (Herhalingsinterval is 1 uur, 30 minuten) voor één dag (Herhalingsduration is 1 dag).

Parameters

-At

Start de taak op de opgegeven datum en tijd. Voer een DateTime-object in, zoals een object dat door de Get-Date cmdlet wordt geretourneerd, of een tekenreeks die kan worden geconverteerd naar een tijd, zoals April 19, 2012 15:00, 12/31/2013 9:00 PMof 3am.

Als u geen element van het DateTime-object opgeeft, zoals seconden, wordt dat element van de taaktrigger niet gewijzigd. Als de oorspronkelijke taaktrigger geen DateTime-object bevat en u een element weglaat, wordt de taaktrigger gemaakt met het bijbehorende element van de huidige datum en tijd.

Wanneer u de parameter Eenmaal gebruikt, stelt u de waarde van de parameter At in op een bepaalde datum en tijd. Omdat de standaarddatum in een DateTime-object de huidige datum is, resulteert het instellen van een tijd vóór de huidige tijd zonder expliciete datum in een taaktrigger voor een tijd in het verleden.

Datum/tijd-objecten en tekenreeksen die worden geconverteerd naar DateTime-objecten, worden automatisch aangepast zodat deze compatibel zijn met de datum- en tijdnotaties die zijn geselecteerd voor de lokale computer in Regio en Taal in Configuratiescherm.

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

-AtLogOn

Start de geplande taak wanneer de opgegeven gebruikers zich aanmelden bij de computer. Als u een gebruiker wilt opgeven, gebruikt u de parameter Gebruiker .

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

-AtStartup

Hiermee start u de geplande taak wanneer Windows wordt gestart.

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

-Daily

Hiermee geeft u een terugkerende dagelijkse taakplanning. Gebruik de andere parameters in de parameter Dagelijks die zijn ingesteld om de planningsgegevens op te geven.

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

-DaysInterval

Hiermee geeft u het aantal dagen tussen exemplaren op volgens een dagelijkse planning. Bijvoorbeeld: een waarde voor het starten van 3 de geplande taak op dagen1, 47 enzovoort. De standaardwaarde is 1.

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

-DaysOfWeek

Hiermee geeft u de dagen van de week waarop een wekelijks geplande taak wordt uitgevoerd. Voer dagnamen in, zoals Monday, Thursdaygehele getallen 06-, waarbij 0 zondag wordt aangegeven of een sterretje (*) dat elke dag moet worden weergegeven. Deze parameter is vereist in de set wekelijkse parameters.

Dagnamen worden geconverteerd naar hun gehele getallen in de taaktrigger. Wanneer u dagnamen tussen aanhalingstekens in een opdracht plaatst, plaatst u elke dagnaam tussen afzonderlijke aanhalingstekens, zoals "Monday", "Tuesday". Als u namen van meerdere dagen tussen één aanhalingstekenpaar plaatst, worden de bijbehorende gehele getallen opgeteld. Bijvoorbeeld: "Monday, Tuesday" (1 + 2) resulteert in een waarde van Wednesday (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

Hiermee geeft u de taaktriggers. Voer een variabele in die ScheduledJobTrigger-objecten bevat of typ een opdracht of expressie waarmee ScheduledJobTrigger-objecten worden opgehaald, zoals een Get-JobTrigger opdracht. U kunt ook een ScheduledJobTrigger-object doorsluisen naar Set-JobTrigger.

Als u meerdere taaktriggers opgeeft, Set-JobTrigger worden dezelfde wijzigingen aangebracht in alle taaktriggers.

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

-Once

Hiermee geeft u een niet-terugkerend (eenmalig) schema.

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

-PassThru

Retourneert de taaktriggers die zijn gewijzigd. Deze cmdlet genereert standaard geen uitvoer.

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

-RandomDelay

Hiermee kunt u een willekeurige vertraging inschakelen die begint bij de geplande begintijd en de maximale vertragingswaarde instellen. De lengte van de vertraging wordt pseudo-willekeurig ingesteld voor elke start en varieert van geen vertraging tot de tijd die is opgegeven door de waarde van deze parameter. Met de standaardwaarde nul (00:00:00) wordt de willekeurige vertraging uitgeschakeld.

Voer een tijdspanneobject in, zoals een object dat wordt geretourneerd door de New-TimeSpan cmdlet of voer een waarde in indeling in <hours>:<minutes>:<seconds> , die automatisch wordt geconverteerd naar een tijdspanneobject.

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

-RepeatIndefinitely

Deze parameter, beschikbaar vanaf Windows PowerShell 4.0, elimineert de noodzaak om voor onbepaalde tijd een TimeSpan.MaxValue-waarde op te geven voor de parameter RepetitionDuration om een geplande taak herhaaldelijk uit te voeren.

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

-RepetitionDuration

Herhaalt de taak totdat de opgegeven tijd verloopt. De herhalingsfrequentie wordt bepaald door de waarde van de parameter RepetitionInterval . Als de waarde van Herhalingsinterval bijvoorbeeld 5 minuten is en de waarde van Herhalingsduration 2 uur is, wordt de taak elke vijf minuten geactiveerd voor twee uur.

Voer een tijdspanneobject in, zoals een object dat door de New-TimeSpan cmdlet wordt geretourneerd of een tekenreeks die kan worden geconverteerd naar een tijdspanneobject, zoals 1:05:30.

Als u een taak voor onbepaalde tijd wilt uitvoeren, voegt u in plaats daarvan de parameter RepeatIndefinitely toe.

Als u een taak wilt stoppen voordat de herhalingsduur van de taak verloopt, stelt u de waarde Herhalingsduration in op nul (0).

Als u de herhalingsduur of het herhalingsinterval van een eenmaal-taaktrigger wilt wijzigen, moet de opdracht zowel de parameters RepetitionInterval als Herhalingsduration bevatten. Als u de herhalingsduur of herhalingsintervallen van andere typen taaktriggers wilt wijzigen, moet de opdracht de parameters Once, At, RepetitionInterval en RepetitionDuration bevatten.

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

-RepetitionInterval

Herhaalt de taak op het opgegeven tijdsinterval. Als de waarde van deze parameter bijvoorbeeld 2 uur is, wordt de taak elke twee uur geactiveerd. De standaardwaarde, 0wordt de taak niet herhaald.

Voer een tijdspanneobject in, zoals een object dat door de New-TimeSpan cmdlet wordt geretourneerd of een tekenreeks die kan worden geconverteerd naar een tijdspanneobject, zoals 1:05:30.

Als u de herhalingsduur of het herhalingsinterval van een eenmaal-taaktrigger wilt wijzigen, moet de opdracht zowel de parameters RepetitionInterval als Herhalingsduration bevatten. Als u de herhalingsduur of herhalingsintervallen van andere typen taaktriggers wilt wijzigen, moet de opdracht de parameters Once, At, RepetitionInterval en RepetitionDuration bevatten.

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

-User

Hiermee geeft u de gebruikers op die een AtLogon-start van een geplande taak activeren. Voer de naam in van een gebruiker in <UserName> of <Domain>\<Username> notatie of voer een sterretje (*) in om alle gebruikers weer te geven. De standaardwaarde is alle gebruikers.

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

-Weekly

Hiermee geeft u een terugkerende wekelijkse taakplanning op. Gebruik de andere parameters in de parameter Wekelijks ingesteld om de planningsgegevens op te geven.

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

-WeeksInterval

Hiermee geeft u het aantal weken tussen exemplaren op een wekelijks taakschema. Een waarde voor het starten van 3 de geplande taak bijvoorbeeld op weken1, 74enzovoort. De standaardwaarde is 1.

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

Invoerwaarden

ScheduledJobTrigger

U kunt een taaktrigger doorsluisen naar deze cmdlet.

Uitvoerwaarden

None

Deze cmdlet retourneert standaard geen uitvoer.

ScheduledJobTrigger

Wanneer u de parameter PassThru gebruikt, retourneert deze cmdlet de taaktriggers die deze hebben gewijzigd.

Notities

  • Taaktriggers hebben een eigenschap JobDefinition die deze koppelt aan de geplande taak. Wanneer u de taaktrigger van een geplande taak wijzigt, wordt de taak gewijzigd. U hoeft geen opdracht te gebruiken Set-ScheduledJob om de gewijzigde trigger toe te passen op de geplande taak.