Set-ScheduledJob
Ändert geplante Aufträge.
Syntax
Set-ScheduledJob
[-Name <String>]
[-ScriptBlock <ScriptBlock>]
[-Trigger <ScheduledJobTrigger[]>]
[-InitializationScript <ScriptBlock>]
[-RunAs32]
[-Credential <PSCredential>]
[-Authentication <AuthenticationMechanism>]
[-ScheduledJobOption <ScheduledJobOptions>]
[-InputObject] <ScheduledJobDefinition>
[-MaxResultCount <Int32>]
[-PassThru]
[-ArgumentList <Object[]>]
[-RunNow]
[-RunEvery <TimeSpan>]
[<CommonParameters>]
Set-ScheduledJob
[-Name <String>]
[-FilePath <String>]
[-Trigger <ScheduledJobTrigger[]>]
[-InitializationScript <ScriptBlock>]
[-RunAs32]
[-Credential <PSCredential>]
[-Authentication <AuthenticationMechanism>]
[-ScheduledJobOption <ScheduledJobOptions>]
[-InputObject] <ScheduledJobDefinition>
[-MaxResultCount <Int32>]
[-PassThru]
[-ArgumentList <Object[]>]
[-RunNow]
[-RunEvery <TimeSpan>]
[<CommonParameters>]
Set-ScheduledJob
[-InputObject] <ScheduledJobDefinition>
[-ClearExecutionHistory]
[-PassThru]
[<CommonParameters>]
Beschreibung
Das Set-ScheduledJob
Cmdlet ändert die Eigenschaften von geplanten Aufträgen, z. B. die Befehle, die von den Aufträgen ausgeführt werden, oder die Zum Ausführen des Auftrags erforderlichen Anmeldeinformationen. Sie können es auch verwenden, um den Ausführungsverlauf des geplanten Auftrags zu löschen.
Um dieses Cmdlet zu verwenden, verwenden Sie zunächst das Get-ScheduledJob
Cmdlet, um den geplanten Auftrag abzurufen. Übergeben Sie dann den geplanten Auftrag an Set-ScheduledJob
den Auftrag, oder speichern Sie den Auftrag in einer Variablen, und verwenden Sie den InputObject-Parameter , um den Auftrag zu identifizieren. Verwenden Sie die Parameter zum Erneuten Standard von Set-ScheduledJob
Aufgaben, um die Auftragseigenschaften zu ändern oder den Ausführungsverlauf zu löschen.
Obwohl Sie die Set-ScheduledJob
Auslöser und Optionen eines geplanten Auftrags ändern können, bieten die Add-JobTrigger
Cmdlets Set-JobTrigger
und Set-ScheduledJobOption
Die Cmdlets wesentlich einfachere Möglichkeiten zum Ausführen dieser Aufgaben. Verwenden Sie das Register-ScheduledJob
Cmdlet, um einen neuen geplanten Auftrag zu erstellen.
Der Trigger-Parameter von Set-ScheduledJob
fügt einen oder mehrere Auftragstrigger hinzu, die den Auftrag starten.
Der Trigger-Parameter ist optional, sodass Sie Trigger hinzufügen können, wenn Sie den geplanten Auftrag erstellen, später Auftragstrigger hinzufügen, den RunNow-Parameter hinzufügen, um den Auftrag sofort zu starten, das Start-Job
Cmdlet verwenden, um den Auftrag sofort zu starten oder den ungetriggerten geplanten Auftrag als Vorlage für andere Aufträge zu speichern.
Set-ScheduledJob
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 des Skripts, das ein Auftrag ausführt
Dieses Beispiel zeigt, wie Sie das Skript ändern, das in einem geplanten Auftrag ausgeführt wird.
Get-ScheduledJob -Name "Inventory"
Id Name Triggers Command Enabled
-- ---- -------- ------- -------
1 Inventory {1} C:\Scripts\Get-Inventory.ps1 True
Get-ScheduledJob -Name "Inventory" | Set-ScheduledJob -FilePath "C:\Scripts\Get-FullInventory.ps1" -Passthru
Id Name Triggers Command Enabled
-- ---- -------- ------- -------
1 Inventory {1} C:\Scripts\Get-FullInventory.ps1 True
Der erste Befehl verwendet das Get-ScheduledJob
Cmdlet zum Abrufen des geplanten Inventarauftrags. Die Ausgabe zeigt, dass der Auftrag das Skript „Get-Inventory.ps1“ ausführt.
Der zweite Befehl verwendet das Get-ScheduledJob
Cmdlet zum Abrufen des geplanten Inventarauftrags. Ein Pipelineoperator (|
) sendet den geplanten Auftrag an das Set-ScheduledJob
Cmdlet. Das Set-ScheduledJob
Cmdlet verwendet den Script-Parameter, um ein neues Skript anzugeben. Get-FullInventory.ps1
Der Befehl verwendet den Passthru-Parameter , um den geplanten Auftrag nach der Änderung zurückzugeben.
Dieser Befehl ist nicht erforderlich. Er soll lediglich die Auswirkung der Skriptänderung veranschaulichen.
Beispiel 2: Löschen des Ausführungsverlaufs eines geplanten Auftrags
In diesem Beispiel werden der aktuelle Ausführungsverlauf und gespeicherte Auftragsergebnisse für einen geplanten Auftrag gelöscht.
Get-ScheduledJob BackupArchive | Set-ScheduledJob -ClearExecutionHistory
Der Befehl verwendet das Get-ScheduledJob
Cmdlet, um den geplanten Auftrag "BackupArchive" abzurufen. Ein Pipelineoperator (|
) sendet den Auftrag an das Set-ScheduledJob
Cmdlet, um ihn zu ändern. Das Set-ScheduledJob
Cmdlet verwendet den Parameter ClearExecutionHistory , um den Ausführungsverlauf und gespeicherte Ergebnisse zu löschen.
Weitere Informationen zum Ausführungsverlauf und gespeicherten Auftragsergebnissen geplanter Aufträge finden Sie unter about_Scheduled_Jobs.
Beispiel 3: Ändern geplanter Aufträge auf einem Remotecomputer
Dieser Befehl ändert das Initialisierungsskript in allen geplanten Aufträgen auf Remotecomputern.
Invoke-Command -Computer "Server01, Server02" -ScriptBlock {Get-ScheduledJob |
Set-ScheduledJob -InitializationScript \\SrvA\Scripts\SetForRun.ps1}
Der Befehl verwendet das Invoke-Command
Cmdlet, um einen Befehl auf den Computern Server01 und Server02 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 Set-ScheduledJob
Cmdlet weitergeleitet, wodurch das Initialisierungsskript in SetForRun.ps1
.
Parameter
-ArgumentList
Gibt Werte für die Parameter des Skripts an, das vom FilePath-Parameter oder für den Befehl angegeben wird, der durch den ScriptBlock-Parameter angegeben wird.
Type: | Object[] |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Authentication
Gibt den Mechanismus an, der zum Authentifizieren der Anmeldeinformationen des Benutzers verwendet wird. Zulässige Werte für diesen Parameter:
Default
Basic
Credssp
Digest
Kerberos
Negotiate
NegotiateWithImplicitCredential
Der Standardwert ist Default
. Weitere Informationen zu den Werten dieses Parameters finden Sie unter AuthenticationMechanism Enumeration im PowerShell SDK.
Achtung
Credential Security Support Provider (CredSSP)-Authentifizierung, bei der die Anmeldeinformationen des Benutzers an einen Remotecomputer übergeben werden, der authentifiziert werden soll, ist für Befehle konzipiert, die eine Authentifizierung für mehrere Ressourcen erfordern, z. B. den Zugriff auf eine Remotenetzwerkfreigabe. Dieser Mechanismus erhöht das Sicherheitsrisiko des Remotevorgangs. Wenn die Sicherheit des Remotecomputers gefährdet ist, können die an ihn übergebenen Anmeldeinformationen zum Steuern der Netzwerksitzung verwendet werden.
Type: | AuthenticationMechanism |
Accepted values: | Default, Basic, Negotiate, NegotiateWithImplicitCredential, Credssp, Digest, Kerberos |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-ClearExecutionHistory
Löscht den aktuellen Ausführungsverlauf und die gespeicherten Ergebnisse des geplanten Auftrags.
Der Auftragsausführungsverlauf und die Auftragsergebnisse werden mit dem geplanten Auftrag im $HOME\AppData\Local\Microsoft\Windows\PowerShell\ScheduledJobs
Verzeichnis auf dem Computer gespeichert, auf dem der Auftrag erstellt wird. Verwenden Sie das Get-Job
Cmdlet, um den Ausführungsverlauf anzuzeigen. Verwenden Sie das Receive-Job
Cmdlet, um die Auftragsergebnisse abzurufen.
Dieser Parameter hat keine Auswirkungen auf die Ereignisse, die vom Taskplaner in die Windows-Ereignisprotokolle geschrieben werden, und hindert Windows PowerShell nicht daran, Auftragsergebnisse zu speichern. Verwenden Sie den MaxResultCount-Parameter , um die Anzahl der gespeicherten Auftragsergebnisse zu verwalten.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Credential
Gibt ein Benutzerkonto mit der Berechtigung zum Ausführen des geplanten Auftrags an. Der Standardwert ist der aktuelle Benutzer.
Geben Sie einen Benutzernamen ein, z. B. "User01" oder "Do Standard 01\User01", oder geben Sie ein PSCredential-Objekt ein, z. B. eines aus dem Get-Credential
Cmdlet. Wenn Sie nur einen Benutzernamen eingeben, werden Sie zur Eingabe eines Kennworts aufgefordert.
Type: | PSCredential |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-FilePath
Gibt ein Skript an, das vom geplanten Auftrag ausgeführt wird. Geben Sie den Pfad zu einer PS1-Datei auf dem lokalen Computer ein. Verwenden Sie den ArgumentList-Parameter , um Standardwerte für die Skriptparameter anzugeben. Jeder geplante Auftrag muss entweder über einen ScriptBlock - oder FilePath-Wert verfügen.
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-InitializationScript
Gibt den vollqualifizierten Pfad zu einem Windows PowerShell-Skript (.ps1
) an. Das Initialisierungsskript wird in der Sitzung ausgeführt, die für den Hintergrundauftrag erstellt wird, bevor die Befehle, die durch den ScriptBlock-Parameter oder das Skript angegeben werden, das vom FilePath-Parameter angegeben wird. Sie können das Initialisierungsskript zum Konfigurieren der Sitzung verwenden, z. B. zum Hinzufügen von Dateien, Funktionen oder Aliasen, Erstellen von Verzeichnissen oder Überprüfen der Voraussetzungen.
Verwenden Sie den FilePath-Parameter , um ein Skript anzugeben, das die primären Auftragsbefehle ausführt.
Wenn das Initialisierungsskript einen Fehler generiert, einschließlich eines nicht beendeten Fehlers, wird die aktuelle Instanz des geplanten Auftrags nicht ausgeführt, und der Status ist fehlgeschlagen.
Type: | ScriptBlock |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-InputObject
Gibt den zu ändernden geplanten Auftrag an. Geben Sie eine Variable ein, die ScheduledJobDefinition-Objekte enthält, oder geben Sie einen Befehl oder Ausdruck ein, der ScheduledJobDefinition-Objekte abruft, z. B. einen Get-ScheduledJob
Befehl. Sie können auch ein ScheduledJobDefinition -Objekt an Set-ScheduledJob
.
Wenn Sie mehrere geplante Aufträge angeben, Set-ScheduledJob
werden dieselben Änderungen an allen Aufträgen vorgenommen.
Type: | ScheduledJobDefinition |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-MaxResultCount
Gibt an, wie viele Auftragsergebniseinträge für den geplanten Auftrag verwaltet werden. Der Standardwert ist 32.
Windows PowerShell speichert den Ausführungsverlauf und die Ergebnisse der einzelnen ausgelösten Instanzen des geplanten Auftrags auf dem Datenträger. Der Wert dieses Parameters bestimmt die Anzahl der Ergebnisse der Auftragsinstanz, die für diesen geplanten Auftrag gespeichert wird. Wenn die Anzahl der Ergebnisse der Auftragsinstanz diesen Wert überschreitet, löscht Windows PowerShell die Ergebnisse der ältesten Auftragsinstanz, um Platz für die Ergebnisse der neuesten Auftragsinstanz zu schaffen.
Der Auftragsausführungsverlauf und die Auftragsergebnisse werden im $HOME\AppData\Local\Microsoft\Windows\PowerShell\ScheduledJobs\<JobName>\Output\<Timestamp>
Verzeichnisse auf dem Computer, auf dem der Auftrag erstellt wird. Verwenden Sie das Get-Job
Cmdlet, um den Ausführungsverlauf anzuzeigen. Verwenden Sie das Receive-Job
Cmdlet, um die Auftragsergebnisse abzurufen.
Der Parameter MaxResultCount legt den Wert der ExecutionHistoryLength-Eigenschaft des geplanten Auftrags fest.
Verwenden Sie den ClearExecutionHistory-Parameter , um den aktuellen Ausführungsverlauf und die Auftragsergebnisse zu löschen.
Type: | Int32 |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Name
Gibt einen neuen Namen für den geplanten Auftrag und Instanzen des geplanten Auftrags an. Der Name muss auf dem lokalen Computer eindeutig sein.
Um den zu ändernden geplanten Auftrag zu identifizieren, verwenden Sie den InputObject-Parameter oder geben Sie einen geplanten Auftrag von Get-ScheduledJob
an .Set-ScheduledJob
Dieser Parameter ändert nicht die Namen von Auftragsinstanzen auf dem Datenträger. Er wirkt sich nur auf Auftragsinstanzen aus, die nach Abschluss dieses Befehls gestartet werden.
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-PassThru
Gibt ein Objekt zurück, das das Element darstellt, mit dem Sie arbeiten. 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 |
-RunAs32
Führt den geplanten Auftrag in einem 32-Bit-Prozess aus.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-RunEvery
Wird verwendet, um anzugeben, wie oft der Auftrag ausgeführt werden soll. Verwenden Sie beispielsweise diese Option, um einen Auftrag alle 15 Minuten auszuführen.
Type: | TimeSpan |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-RunNow
Startet sofort einen Auftrag, sobald das Set-ScheduledJob
Cmdlet ausgeführt wird. Durch diesen Parameter ist es nicht erforderlich, dass der Taskplaner direkt nach der Registrierung ein Windows PowerShell-Skript ausführt. Außerdem müssen Benutzer keinen Trigger erstellen, der ein Datum und eine Uhrzeit für den Start angibt.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-ScheduledJobOption
Legt Optionen für den geplanten Auftrag fest. Geben Sie ein ScheduledJobOptions-Objekt ein, z. B. ein Objekt, das Sie mithilfe des New-ScheduledJobOption
Cmdlets erstellen, oder einen Hashtabellenwert.
Sie können Optionen für einen geplanten Auftrag festlegen, wenn Sie den geplanten Auftrag registrieren oder die Set-ScheduledJobOption
Optionen Set-ScheduledJob
oder Cmdlets verwenden, um Optionen festzulegen oder zu ändern.
Viele Optionen und ihre Standardwerte bestimmen, ob und wann ein geplanter Auftrag ausgeführt wird. Achten Sie darauf, diese Optionen zu überprüfen, bevor Sie einen Auftrag planen. Eine Beschreibung der geplanten Auftragsoptionen, einschließlich der Standardwerte, finden Sie unter New-ScheduledJobOption
.
Um eine Hashtabelle zu übermitteln, verwenden Sie die folgenden Schlüssel. Die Schlüssel werden in der folgenden Hashtabelle mit ihren Standardwerten angezeigt.
@{# Power SettingsStartIfOnBattery=$False;StopIfGoingOnBattery=$True; WakeToRun=$False; # Idle SettingsStartIfNotIdle=$False; IdleDuration="00:10:00"; IdleTimeout="01:00:00"; StopIfGoingOffIdle=$True; RestartOnIdleResume=$False;# Security settingsShowInTaskScheduler=$TrueRunElevated=$False;# MiscRunWithoutNetwork=$False;DoNotAllowDemandStart=$False;MultipleInstancePolicy=IgnoreNew# Can be IgnoreNew, Parallel, Queue, StopExisting}
Type: | ScheduledJobOptions |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-ScriptBlock
Gibt die Befehle an, die vom geplanten Auftrag ausgeführt werden. Schließen Sie die Befehle in geschweifte Klammern ({}
) ein, um einen Skriptblock zu erstellen. Verwenden Sie den ArgumentList-Parameter , um Standardwerte für Befehlsparameter anzugeben.
Jeder Register-ScheduledJob
Befehl muss entweder die Parameter ScriptBlock oder FilePath verwenden.
Type: | ScriptBlock |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Trigger
Gibt die Trigger für den geplanten Auftrag an. Geben Sie mindestens ein ScheduledJobTrigger-Objekt ein, z. B. die vom Cmdlet zurückgegebenen Objekte New-JobTrigger
oder eine Hashtabelle mit Auftragstriggerschlüsseln und -werten.
Ein Auftragstrigger startet einen geplanten Auftrag automatisch für einen einmaligen oder wiederkehrenden Auftrag oder wenn ein Ereignis auftritt.
Auftragstrigger sind optional. Sie können einen Trigger hinzufügen, wenn Sie den geplanten Auftrag erstellen, Add-JobTrigger
Set-ScheduledJob
später Trigger hinzufügen oder das Start-Job
Cmdlet verwenden, um den geplanten Auftrag sofort zu starten. Sie können auch einen geplanten Auftrag erstellen und verwalten, der keine Auftragstrigger enthält.
Um eine Hashtabelle zu übermitteln, verwenden Sie die folgenden Schlüssel.
@{Frequency="Once" (or Daily, Weekly, AtStartup, AtLogon);At="3am"
(oder eine beliebige gültige Zeitzeichenfolge); DaysOfWeek="Monday", "Wednesday"
(oder eine beliebige Kombination aus Tagnamen); Interval=2
(oder ein gültiges Häufigkeitsintervall); RandomDelay="30minutes"
(oder eine beliebige gültige Zeitbereichszeichenfolge); User="Domain1\User01"
(oder beliebiger gültiger Benutzer; wird nur mit dem AtLogon-Häufigkeitswert verwendet)
}
Type: | ScheduledJobTrigger[] |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Eingaben
Sie können einen geplanten Auftrag an dieses Cmdlet weiterleiten.
Ausgaben
None
Standardmäßig gibt dieses Cmdlet keine Ausgabe zurück.
Wenn Sie den PassThru-Parameter verwenden, gibt dieses Cmdlet den geplanten Auftrag zurück, den er geändert hat.
Ä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