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 3
verfü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 PM
oder 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
, 4
7
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. , Thursday
ganze Zahlen 0
6
-, 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-JobTrigger
das
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 , 0
wiederholt 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
, 4
usw 7
. Der Standardwert ist 1
.
Type: | Int32 |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Eingaben
Sie können einen Auftragstrigger an dieses Cmdlet weiterleiten.
Ausgaben
None
Standardmäßig gibt dieses Cmdlet keine Ausgabe zurück.
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.
Ähnliche Themen
- Add-JobTrigger
- Disable-JobTrigger
- Disable-ScheduledJob
- Enable-JobTrigger
- Enable-ScheduledJob
- Get-JobTrigger
- Get-ScheduledJob
- Get-ScheduledJobOption
- New-JobTrigger
- New-ScheduledJobOption
- Register-ScheduledJob
- Remove-JobTrigger
- Set-JobTrigger
- Set-ScheduledJob
- Set-ScheduledJobOption
- Unregister-ScheduledJob
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für