Share via


Set-JobTrigger

Ändert den Auftragstrigger eines geplanten Auftrags.

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>]

Beschreibung

Das Set-JobTrigger Cmdlet ändert die Eigenschaften der Auftragsauslöser von geplanten Aufträgen. Mit dem Cmdlet können Sie ändern, wann oder wie häufig Aufträge gestartet werden, oder von zeitbasierten Zeitplänen zu Zeitplänen wechseln, die durch einen Anmelde- oder Startvorgang ausgelöst werden.

Ein Auftragstrigger definiert einen wiederkehrenden Zeitplan oder bedingungen für das Starten eines geplanten Auftrags. Obwohl Auftragstrigger nicht auf dem Datenträger gespeichert werden, können Sie die Auftragstrigger geplanter Aufträge ändern, die auf dem Datenträger gespeichert werden.

Um einen Auftragstrigger eines geplanten Auftrags zu ändern, verwenden Sie zunächst das Get-JobTrigger Cmdlet, um den Auftragstrigger eines geplanten Auftrags abzurufen. Übergeben Sie dann den Trigger an Set-JobTrigger den Trigger, oder speichern Sie den Trigger in einer Variablen, und verwenden Sie den InputObject-Parameter des Set-JobTrigger Cmdlets, um den Trigger zu identifizieren. Verwenden Sie zum Ändern des Auftragstriggers die Parameter Set-JobTrigger zum Erneuten Standard.

Wenn Sie den Typ eines Auftragstriggers ändern, z. B. das Ändern eines Auftragstriggers von einem täglichen oder wöchentlichen Trigger in einen AtLogon-Trigger , werden die ursprünglichen Triggereigenschaften gelöscht. Wenn Sie jedoch die Werte des Triggers, aber nicht dessen Typ ändern, also z. B. die Tage in einem Weekly-Trigger, werden nur die Eigenschaften geändert, die Sie angeben. Alle anderen Eigenschaften des ursprünglichen Auftragstriggers werden beibehalten.

Set-JobTrigger ist eine Sammlung von Auftragsplanungs-Cmdlets im PSScheduledJob-Modul, das in Windows PowerShell enthalten ist.

Weitere Informationen zu geplanten Aufträgen finden Sie unter den Info-Themen im PSScheduledJob-Modul. Importieren Sie das PSScheduledJob-Modul, und geben Sie dann Folgendes ein: Get-Help about_Scheduled* oder lesen Sie about_Scheduled_Jobs.

Dieses Cmdlet wurde in Windows PowerShell 3.0 eingeführt.

Beispiele

Beispiel 1: Ändern der Tage in einem Auftragstrigger

Dieses Beispiel zeigt, wie die Tage in einem Weekly-Auftragstrigger geändert werden.

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

Der erste Befehl verwendet das Get-JobTrigger Cmdlet, um den Auftragstrigger des DeployPackage geplanten Auftrags abzurufen. Die Ausgabe zeigt, dass der Trigger den Auftrag mittwochs und samstags um Mitternacht startet.

Der zweite Befehl verwendet das Get-JobTrigger Cmdlet, um den Auftragstrigger des DeployPackage geplanten Auftrags abzurufen. Ein Pipelineoperator (|) sendet den Trigger an das Set-JobTrigger Cmdlet, wodurch der Auftragsauslöser geändert wird, sodass er den DeployPackage Auftrag an Mittwochs und Sonntagen startet. Der Befehl verwendet den Passthru-Parameter , um den Trigger nach der Änderung zurückzugeben.

Dieser Befehl ist nicht erforderlich. Er soll lediglich die Auswirkung der Triggeränderung veranschaulichen.

Beispiel 2: Ändern des Auftragstriggertyps

In diesem Beispiel wird veranschaulicht, wie der Typ des Auftragstriggers geändert wird, der einen Auftrag startet. Die Befehle in diesem Beispiel ersetzen einen AtStartup Auftragstrigger durch einen wöchentlichen 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

Der erste Befehl verwendet das Get-JobTrigger Cmdlet, um den Auftragstrigger des Inventory geplanten Auftrags abzurufen. Die Ausgabe zeigt, dass der Auftrag zwei Trigger für einen täglichen Trigger und einen AtStartup-Trigger hat.

Der zweite Befehl verwendet das Get-JobTrigger Cmdlet, um den AtStartup-Auftragstrigger des Inventory Auftrags abzurufen. Der Befehl verwendet den TriggerID-Parameter , um den Auftragstrigger zu identifizieren. Ein Pipelineoperator (|) sendet den Auftragstrigger an das Set-JobTrigger Cmdlet, wodurch er in einen wöchentlichen Auftragstrigger geändert wird, der alle vier Wochen am Montag um Mitternacht ausgeführt wird. Der Befehl verwendet den Passthru-Parameter , um den Trigger nach der Änderung zurückzugeben.

Dieser Befehl ist nicht erforderlich. Er soll lediglich die Auswirkung der Triggeränderung veranschaulichen.

Beispiel 3: Ändern des Benutzers in einem Remoteauftragsauslöser

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

Dieser Befehl ändert den Benutzer in allen AtLogon-Auftragsauslösern von geplanten Aufträgen auf dem Server01-Computer.

Der Befehl verwendet das Invoke-Command Cmdlet, um einen Befehl auf dem Server01-Computer auszuführen.

Der Remotebefehl beginnt mit einem Get-ScheduledJob Befehl, der alle geplanten Aufträge auf dem Computer abruft. Die geplanten Aufträge werden an das Get-JobTrigger Cmdlet weitergeleitet, das die Auftragsauslöser der geplanten Aufträge abruft. Jeder Auftragstrigger enthält eine JobDefinition-Eigenschaft, die den geplanten Auftrag enthält, sodass der Trigger erneut Standard dem geplanten Auftrag zugeordnet ist, auch wenn er geändert wird.

Die Auftragstrigger werden an das Where-Object Cmdlet weitergeleitet, das Auftragstrigger mit der User-Eigenschaft abruft. Die ausgewählten Auftragstrigger werden an das Set-JobTrigger Cmdlet weitergeleitet, das den Benutzer in Domain01\Admin02.

Beispiel 4: Ändern eines von vielen Auftragstriggern

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

Die Befehle in diesem Beispiel ändern das Wiederholungsintervall des Einmalauftragsauslöser des SecurityCheck geplanten Auftrags von alle 60 Minuten in alle 90 Minuten. Der SecurityCheck geplante Auftrag verfügt über drei Auftragstrigger, sodass die Befehle den TriggerId-Parameter des Get-JobTrigger Cmdlets verwenden, um den Auftragsauslöser zu identifizieren, der geändert wird.

Der erste Befehl verwendet das Get-JobTrigger Cmdlet, um alle Auftragstrigger des SecurityCheck geplanten Auftrags abzurufen. Die Ausgabe, in der die IDs des Auftragsauslöser angezeigt werden, zeigt an, dass der Einmalauftragstrigger über eine ID von 3verfügt.

Der zweite Befehl verwendet den TriggerID-Parameter des Get-JobTrigger Cmdlets, um den Once-Trigger des SecurityCheck geplanten Auftrags abzurufen. Mit dem Befehl wird der Trigger an das Format-List Cmdlet weitergeleitet, der alle Eigenschaften des Einmalauftragsauslöser anzeigt. Die Ausgabe zeigt, dass der Trigger den Auftrag einmal pro Stunde startet (RepetitionInterval ist 1 Stunde) für einen Tag (Wiederholungsduration ist 1 Tag).

Der dritte Befehl ändert das Wiederholungsintervall des Auftragstriggers von einer Stunde auf 90 Minuten. Der Befehl gibt keine Ausgabe zurück.

Der vierte Befehl zeigt den Effekt der Änderung an. Die Ausgabe zeigt, dass der Trigger den Auftrag einmal alle 90 Minuten startet (WiederholungInterval beträgt 1 Stunde, 30 Minuten) für einen Tag (Wiederholungsduration ist 1 Tag).

Parameter

-At

Startet den Auftrag zum angegebenen Datum und zur angegebenen Uhrzeit. Geben Sie ein DateTime-Objekt ein, z. B. ein Objekt, das das Get-Date Cmdlet zurückgibt, oder eine Zeichenfolge, die in eine Uhrzeit konvertiert werden kann, z April 19, 2012 15:00. B. , 12/31/2013 9:00 PModer 3am.

Wenn Sie kein Element des DateTime-Objekts angeben, z. B. Sekunden, wird dieses Element des Auftragstriggers nicht geändert. Wenn der ursprüngliche Auftragstrigger kein DateTime-Objekt enthält und Sie ein Element weglassen, wird der Auftragstrigger mit dem entsprechenden Element aus dem aktuellen Datum und der aktuellen Uhrzeit erstellt.

Wenn Sie den Parameter "Once " verwenden, legen Sie den Wert des Parameters "At " auf ein bestimmtes Datum und eine bestimmte Uhrzeit fest. Da das Standarddatum in einem DateTime-Objekt das aktuelle Datum ist, führt das Festlegen einer Uhrzeit vor der aktuellen Uhrzeit ohne ein explizites Datum zu einem Auftragstrigger für eine Uhrzeit in der Vergangenheit.

DateTime-Objekte und Zeichenfolgen, die in DateTime-Objekte konvertiert werden, werden automatisch so angepasst, dass sie mit den Datums- und Uhrzeitformaten kompatibel sind, die für den lokalen Computer in Region und Sprache in Systemsteuerung ausgewählt sind.

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

-AtLogOn

Startet den geplanten Auftrag, wenn sich die angegebenen Benutzer beim Computer anmelden. Verwenden Sie den Parameter "User ", um einen Benutzer anzugeben.

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

-AtStartup

Startet den geplanten Auftrag beim Start von Windows.

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

-Daily

Gibt einen täglichen Wiederholungszeitplan für Aufträge an. Verwenden Sie die anderen Parameter im Parameter "Daily ", um die Zeitplandetails anzugeben.

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

-DaysInterval

Gibt die Anzahl der Tage zwischen den Ausführungen in einem täglichen Zeitplan an. Beispielsweise beginnt ein Wert des 3 geplanten Auftrags an Tagen 1, 47 usw. Der Standardwert ist 1.

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

-DaysOfWeek

Gibt die Wochentage an, an denen ein wöchentlicher geplanter Auftrag ausgeführt wird. Geben Sie Tagnamen ein, zMonday. B. , Thursdayganze Zahlen 06-, wobei 0 sonntags oder ein Sternchen (*) steht, das täglich dargestellt werden soll. Dieser Parameter ist im Wochenparametersatz erforderlich.

Namen von Tagen werden im Auftragstrigger in ihre ganzzahligen Werte konvertiert. Wenn Sie Tagnamen in Anführungszeichen in einen Befehl einschließen, schließen Sie jeden Tagnamen in separate Anführungszeichen ein, z "Monday", "Tuesday". B. . Wenn Sie mehrere Namen von Wochentagen in ein Paar von Anführungszeichen einschließen, werden die entsprechenden ganzzahligen Werte addiert. (1 + 2) führt z. B "Monday, Tuesday" . zu einem Wert von 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

Gibt die Auftragstrigger an. Geben Sie eine Variable ein, die ScheduledJobTrigger-Objekte enthält, oder geben Sie einen Befehl oder Ausdruck ein, der ScheduledJobTrigger-Objekte abruft, z. B. einen Get-JobTrigger Befehl. Sie können auch ein ScheduledJobTrigger-Objekt an Set-JobTriggerdas

Wenn Sie mehrere Auftragstrigger angeben, Set-JobTrigger werden dieselben Änderungen an allen Auftragstriggern vorgenommen.

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

-Once

Gibt einen nicht wiederkehrenden (einmaligen) Zeitplan an.

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

-PassThru

Gibt die Auftragstrigger zurück, die sich geändert haben. Standardmäßig wird von diesem Cmdlet keine Ausgabe generiert.

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

-RandomDelay

Ermöglicht eine zufällige Verzögerung, die zur geplanten Startzeit beginnt, und legt den Wert für die maximale Verzögerung fest. Die Länge der Verzögerung wird nach dem Pseudozufallsprinzip für jeden Start festgelegt und variiert von keiner Verzögerung bis zu der durch den Wert dieses Parameters angegebenen Dauer. Der Standardwert Null (00:00:00), deaktiviert die zufällige Verzögerung.

Geben Sie ein Timespan-Objekt ein, z. B. ein vom Cmdlet zurückgegebenes New-TimeSpan Objekt, oder geben Sie einen Wert in <hours>:<minutes>:<seconds> das Format ein, der automatisch in ein Timespan-Objekt konvertiert wird.

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

-RepeatIndefinitely

Dieser Parameter, der ab Windows PowerShell 4.0 verfügbar ist, beseitigt die Notwendigkeit, einen TimeSpan.MaxValue-Wert für den Parameter "RepetitionDuration " anzugeben, um einen geplanten Auftrag wiederholt für einen unbegrenzten Zeitraum auszuführen.

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

-RepetitionDuration

Wiederholt den Auftrag, bis die angegebene Zeit abgelaufen ist. Die Wiederholungshäufigkeit wird durch den Wert des Parameters "RepetitionInterval " bestimmt. Wenn der Wert von "RepetitionInterval " beispielsweise 5 Minuten beträgt und der Wert der Wiederholungsduration 2 Stunden beträgt, wird der Auftrag alle fünf Minuten für zwei Stunden ausgelöst.

Geben Sie ein Timespan-Objekt ein, z. B. eines, das das New-TimeSpan Cmdlet zurückgibt, oder eine Zeichenfolge, die in ein Timespan-Objekt konvertiert werden kann, z 1:05:30. B. .

Wenn Sie einen Auftrag unbegrenzt ausführen möchten, fügen Sie stattdessen den Parameter "RepeatIndefinitely" hinzu.

Wenn Sie einen Auftrag beenden möchten, bevor die Wiederholungsdauer des Auftrags abläuft, legen Sie den Wert "Wiederholungsduration " auf Null (0) fest.

Um die Wiederholungsdauer oder das Wiederholungsintervall eines Einmalauftragsauslöser zu ändern, muss der Befehl sowohl die Parameter "RepetitionInterval" als auch "RepetitionDuration" enthalten. Um die Wiederholungsdauer oder Wiederholungsintervalle anderer Arten von Auftragstriggern zu ändern, muss der Befehl die Parameter "Once", "At", "RepetitionInterval" und "RepetitionDuration" enthalten.

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

-RepetitionInterval

Wiederholt den Auftrag im angegebenen Zeitintervall. Wenn der Wert dieses Parameters 2 Stunden beträgt, wird der Auftrag z. B. alle zwei Stunden ausgelöst. Der Standardwert , 0wiederholt den Auftrag nicht.

Geben Sie ein Timespan-Objekt ein, z. B. eines, das das New-TimeSpan Cmdlet zurückgibt, oder eine Zeichenfolge, die in ein Timespan-Objekt konvertiert werden kann, z 1:05:30. B. .

Um die Wiederholungsdauer oder das Wiederholungsintervall eines Einmalauftragsauslöser zu ändern, muss der Befehl sowohl die Parameter "RepetitionInterval" als auch "RepetitionDuration" enthalten. Um die Wiederholungsdauer oder Wiederholungsintervalle anderer Arten von Auftragstriggern zu ändern, muss der Befehl die Parameter "Once", "At", "RepetitionInterval" und "RepetitionDuration" enthalten.

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

-User

Gibt die Benutzer an, die einen AtLogon-Start eines geplanten Auftrags auslösen. Geben Sie den Namen eines Benutzers in <UserName> oder <Domain>\<Username> formatieren oder ein Sternchen (*) ein, um alle Benutzer darzustellen. Der Standardwert entspricht allen Benutzern.

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

-Weekly

Gibt einen wöchentlichen Wiederholungszeitplan für Aufträge an. Verwenden Sie die anderen Parameter im Parameter "Wöchentlich ", um die Zeitplandetails anzugeben.

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

-WeeksInterval

Gibt die Anzahl der Wochen zwischen den Ausführungen in einem wöchentlichen Auftragszeitplan an. Beispielsweise beginnt ein Wert des 3 geplanten Auftrags in Wochen 1, 4usw 7 . Der Standardwert ist 1.

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

Eingaben

ScheduledJobTrigger

Sie können einen Auftragstrigger an dieses Cmdlet weiterleiten.

Ausgaben

None

Standardmäßig gibt dieses Cmdlet keine Ausgabe zurück.

ScheduledJobTrigger

Wenn Sie den Parameter "PassThru " verwenden, gibt dieses Cmdlet den Auftrag aus, der geändert wurde.

Hinweise

  • Auftragstrigger verfügen über eine JobDefinition-Eigenschaft , die sie dem geplanten Auftrag zuordnet. Wenn Sie den Auftragstrigger eines geplanten Auftrags ändern, wird der Auftrag geändert. Sie müssen keinen Befehl verwenden Set-ScheduledJob , um den geänderten Trigger auf den geplanten Auftrag anzuwenden.