Freigeben über


Register-ScheduledJob

Erstellt einen geplanten Auftrag.

Syntax

Register-ScheduledJob
        [-ScriptBlock] <ScriptBlock>
        [-Name] <String>
        [-Trigger <ScheduledJobTrigger[]>]
        [-InitializationScript <ScriptBlock>]
        [-RunAs32]
        [-Credential <PSCredential>]
        [-Authentication <AuthenticationMechanism>]
        [-ScheduledJobOption <ScheduledJobOptions>]
        [-ArgumentList <Object[]>]
        [-MaxResultCount <Int32>]
        [-RunNow]
        [-RunEvery <TimeSpan>]
        [-WhatIf]
        [-Confirm]
        [<CommonParameters>]
Register-ScheduledJob
        [-FilePath] <String>
        [-Name] <String>
        [-Trigger <ScheduledJobTrigger[]>]
        [-InitializationScript <ScriptBlock>]
        [-RunAs32]
        [-Credential <PSCredential>]
        [-Authentication <AuthenticationMechanism>]
        [-ScheduledJobOption <ScheduledJobOptions>]
        [-ArgumentList <Object[]>]
        [-MaxResultCount <Int32>]
        [-RunNow]
        [-RunEvery <TimeSpan>]
        [-WhatIf]
        [-Confirm]
        [<CommonParameters>]

Beschreibung

Das Register-ScheduledJob Cmdlet erstellt geplante Aufträge auf dem lokalen Computer.

Ein geplanter Auftrag ist ein Windows PowerShell-Hintergrundauftrag, der automatisch in einem einmaligen oder wiederkehrenden Zeitplan gestartet werden kann. Geplante Aufträge werden auf dem Datenträger gespeichert und im Taskplaner registriert. Die Aufträge können im Taskplaner oder mithilfe der Cmdlets "Geplanter Auftrag" in Windows PowerShell verwaltet werden.

Wenn ein geplanter Auftrag gestartet wird, wird eine Instanz des geplanten Auftrags erstellt. Instanzen geplanter Aufträge sind mit Windows PowerShell-Hintergrundaufträgen identisch, mit der Ausnahme, dass die Ergebnisse auf dem Datenträger gespeichert werden. Verwenden Sie die Cmdlets "Auftrag", z Start-Job. B. ", Get-Job", Receive-Job ", und um die Ergebnisse der Auftragsinstanzen zu starten, anzuzeigen und abzurufen.

Dient Register-ScheduledJob zum Erstellen eines neuen geplanten Auftrags. Verwenden Sie den ScriptBlock-Parameter , um die Befehle anzugeben, die der geplante Auftrag ausführt. Verwenden Sie den FilePath-Parameter , um ein Skript anzugeben, das vom Auftrag ausgeführt wird.

Windows PowerShell-geplante Aufträge verwenden dieselben Auftragsauslöser und Auftragsoptionen, die der Taskplaner für geplante Vorgänge verwendet.

Der Trigger-Parameter von Register-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.

Mit dem Parameter "Options " können Sie die Optionseinstellungen für den geplanten Auftrag anpassen. Der Parameter "Options" ist optional, sodass Sie Auftragsoptionen festlegen können, wenn Sie den geplanten Auftrag erstellen oder sie jederzeit ändern. Da Optionseinstellungen für Aufträge die Ausführung des geplanten Auftrags verhindern können, sollten Sie die Auftragsoptionen überprüfen und mit Vorsicht festlegen.

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

Weitere Informationen zu geplanten Aufträgen finden Sie in den Artikeln 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: Erstellen eines geplanten Auftrags

In diesem Beispiel wird ein geplanter Auftrag auf dem lokalen Computer erstellt.

Register-ScheduledJob -Name "Archive-Scripts" -ScriptBlock {
  Get-ChildItem $HOME\*.ps1 -Recurse |
    Copy-Item -Destination "\\Server\Share\PSScriptArchive"
}

Register-ScheduledJob verwendet den Parameter Name , um den Archive-Scripts geplanten Auftrag zu erstellen. Der ScriptBlock-Parameter wird ausgeführt Get-ChildItem , der das $HOME Verzeichnis rekursiv nach .ps1 Dateien durchsucht. Das Copy-Item Cmdlet kopiert die Dateien in ein Verzeichnis, das vom Parameter Destination angegeben wird.

Da der geplante Auftrag keinen Trigger enthält, wird er nicht automatisch gestartet. Sie können Auftragstrigger mit Add-JobTriggerhinzufügen, das Start-Job Cmdlet verwenden, um den Auftrag bei Bedarf zu starten, oder den geplanten Auftrag als Vorlage für andere geplante Aufträge verwenden.

Beispiel 2: Erstellen eines geplanten Auftrags mit Triggern und benutzerdefinierten Optionen

Dieses Beispiel zeigt, wie Sie einen geplanten Auftrag erstellen, der einen Auftragstrigger und benutzerdefinierte Auftragsoptionen aufweist.

$O = New-ScheduledJobOption -WakeToRun -StartIfIdle -MultipleInstancePolicy Queue
$T = New-JobTrigger -Weekly -At "9:00 PM" -DaysOfWeek Monday -WeeksInterval 2
$path = "\\Srv01\Scripts\UpdateVersion.ps1"
Register-ScheduledJob -Name "UpdateVersion" -FilePath $path -ScheduledJobOption $O -Trigger $T

Die $O Variable speichert das Auftragsoptionsobjekt, das vom New-ScheduledJobOption Cmdlet erstellt wurde. Die Optionen starten den geplanten Auftrag, auch wenn der Computer nicht im Leerlauf ist, aktiviert den Computer, um den Auftrag auszuführen, falls erforderlich, und ermöglicht mehreren Instanzen des Auftrags die Ausführung in einer Reihe.

Die $T Variable speichert das Ergebnis des New-JobTrigger Cmdlets zum Erstellen eines Auftragstriggers, der jeden anderen Montag um 9:00 Uhr einen Auftrag startet.

Die $path Variable speichert den Pfad zur UpdateVersion.ps1 Skriptdatei.

Register-ScheduledJob verwendet den Parameter Name , um den geplanten UpdateVersion-Auftrag zu erstellen. Der FilePath-Parameter verwendet $path , um das Skript anzugeben, das der Auftrag ausführt. Der Parameter ScheduledJobOption verwendet die auftragsoptionen, die in $O. Der Trigger-Parameter verwendet die auftragsauslöser, die in $T.

Beispiel 3: Verwenden von Hashtabellen zum Angeben von Trigger- und geplanten Auftragsoptionen

Dieses Beispiel hat die gleiche Wirkung wie der Befehl in Beispiel 2. Er erstellt einen geplanten Auftrag mithilfe von Hashtabellen, um die Werte der Parameter Trigger und ScheduledJobOption anzugeben. Die $O in Beispiel 2 definierten Variablen $Twerden durch Hashtabellen ersetzt.

$T = @{
  Frequency="Weekly"
  At="9:00PM"
  DaysOfWeek="Monday"
  Interval=2
}
$O = @{
  WakeToRun=$true
  StartIfNotIdle=$false
  MultipleInstancePolicy="Queue"
}
Register-ScheduledJob -Trigger $T -ScheduledJobOption $O -Name UpdateVersion -FilePath "\\Srv01\Scripts\Update-Version.ps1"

Beispiel 4: Erstellen von geplanten Aufträgen auf Remotecomputern

In diesem Beispiel wird der geplante EnergyData-Auftrag auf mehreren Remotecomputern erstellt. Der geplante Auftrag führt ein Skript aus, das Rohdaten sammelt und in einem laufenden Protokoll auf dem Remotecomputer speichert.

$Cred = Get-Credential
$O = New-ScheduledJobOption -WakeToRun -StartIfIdle -MultipleInstancePolicy Queue
$T = New-JobTrigger -Weekly -At "9:00 PM" -DaysOfWeek Monday -WeeksInterval 2
Invoke-Command -ComputerName (Get-Content Servers.txt) -Credential $Cred -ScriptBlock {
  $params = @{
      Name = "Get-EnergyData"
      FilePath = "\\Srv01\Scripts\Get-EnergyData.ps1"
      ScheduledJobOption = $using:O
      Trigger = $using:T
  }
  Register-ScheduledJob @params
}

Die $Cred Variable speichert Anmeldeinformationen in einem PSCredential-Objekt für einen Benutzer mit Berechtigungen zum Erstellen von geplanten Aufträgen. Die $O Variable speichert die mit New-ScheduledJobOption. Die $T Variable speichert die mit New-JobTrigger.

Das Invoke-Command Cmdlet verwendet den Parameter ComputerName , um eine Liste der Servernamen aus der Servers.txt Datei abzurufen. Der Parameter "Credential" ruft das anmeldeinformationsobjekt ab, das in $Cred. Der ScriptBlock-Parameter führt einen Register-ScheduledJob Befehl auf den Computern in der Servers.txt Datei aus.

Die Parameter für Register-ScheduledJob diese werden durch $paramsdefiniert. Die Parameter Name geben an, dass der Auftrag auf jedem Remotecomputer benannt Get-EnergyData wird. FilePath stellt den Speicherort des EnergyData.ps1 Skripts bereit. Das Skript befindet sich auf einem Dateiserver, der für alle teilnehmenden Computer verfügbar ist. Der Auftrag wird auf dem durch den Auftrag ausgelösten $T Zeitplan und den Auftragsoptionen in $O.

Der Register-ScheduledJob @params Befehl erstellt den geplanten Auftrag mit den Parametern aus dem Skriptblock.

Beispiel 5: Erstellen eines geplanten Auftrags, der ein Skript auf Remotecomputern ausführt

In diesem Beispiel wird der geplante Auftrag "Collect EnergyData " auf dem lokalen Computer erstellt. Der Auftrag wird auf mehreren Remotecomputern ausgeführt.

$Admin = Get-Credential
$T = New-JobTrigger -Weekly -At "9:00 PM" -DaysOfWeek Monday -WeeksInterval 2
Register-ScheduledJob -Name "CollectEnergyData" -Trigger $T -MaxResultCount 99 -ScriptBlock {
  $params = @{
    AsJob = $true
    ComputerName = (Get-Content Servers.txt)
    FilePath = '\\Srv01\Scripts\Get-EnergyData.ps1'
    Credential = $using:Admin
    Authentication = 'CredSSP'
  }
  Invoke-Command @params
}

Die $Admin Variable speichert Anmeldeinformationen für einen Benutzer mit Berechtigungen zum Ausführen der Befehle in einem PSCredential-Objekt . Die $T Variable speichert die mit New-JobTrigger.

Das Register-ScheduledJob Cmdlet verwendet den Parameter Name , um den geplanten Auftrag "Collect EnergyData " auf dem lokalen Computer zu erstellen. Der Trigger-Parameter gibt die Auftragstrigger an $T , und der MaxResultCount-Parameter erhöht die Anzahl der gespeicherten Ergebnisse auf 99.

Der ScriptBlock-Parameter definiert die Invoke-Command Parameter mit $params. Der Parameter AsJob erstellt das Hintergrundauftragsobjekt auf dem lokalen Computer, obwohl das Energydata.ps1 Skript auf den Remotecomputern ausgeführt wird. Der Parameter ComputerName ruft eine Liste der Servernamen aus der Servers.txt Datei ab. Der Parameter "Credential " gibt ein Benutzerkonto an, das über die Berechtigung zum Ausführen von Skripts auf den Remotecomputern verfügt. Und der Parameter "Authentication " gibt einen Wert von CredSSP an, um delegierte Anmeldeinformationen zuzulassen.

Der Invoke-Command @params Befehl wird mit den Parametern aus dem Skriptblock ausgeführt.

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.

Typ:Object[]
Position:Named
Standardwert:None
Erforderlich:False
Pipelineeingabe akzeptieren:False
Platzhalterzeichen akzeptieren:False

-Authentication

Gibt den Mechanismus an, der zum Authentifizieren der Anmeldeinformationen des Benutzers verwendet wird. Der Standardwert lautet Default.

Zulässige Werte für diesen Parameter:

  • Default
  • Basic
  • Credssp
  • Digest
  • Kerberos
  • Negotiate
  • NegotiateWithImplicitCredential

Weitere Informationen zu den Werten dieses Parameters finden Sie unter AuthenticationMechanism.

Achtung

Die Authentifizierung des Credential Security Service Provider (CredSSP), bei der die Anmeldeinformationen des Benutzers an einen Remotecomputer übergeben werden, der authentifiziert werden soll, wurde für Befehle entwickelt, 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.

Typ:AuthenticationMechanism
Zulässige Werte:Default, Basic, Negotiate, NegotiateWithImplicitCredential, Credssp, Digest, Kerberos
Position:Named
Standardwert:None
Erforderlich:False
Pipelineeingabe akzeptieren:False
Platzhalterzeichen akzeptieren:False

-Confirm

Hiermit werden Sie vor der Ausführung des Cmdlets zur Bestätigung aufgefordert.

Typ:SwitchParameter
Aliase:cf
Position:Named
Standardwert:False
Erforderlich:False
Pipelineeingabe akzeptieren:False
Platzhalterzeichen akzeptieren: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 "Domain01\User01", oder geben Sie ein PSCredential-Objekt ein, z. B. eins aus dem Get-Credential Cmdlet. Wenn Sie nur einen Benutzernamen eingeben, werden Sie zur Eingabe eines Kennworts aufgefordert.

Anmeldeinformationen werden in einem PSCredential-Objekt gespeichert, und das Kennwort wird als SecureString gespeichert.

Hinweis

Weitere Informationen zum Schutz von SecureString finden Sie unter "Wie sicher ist SecureString?".

Typ:PSCredential
Position:Named
Standardwert:None
Erforderlich:False
Pipelineeingabe akzeptieren:False
Platzhalterzeichen akzeptieren: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 Register-ScheduledJob Befehl muss entweder die Parameter ScriptBlock oder FilePath verwenden.

Typ:String
Position:1
Standardwert:None
Erforderlich:True
Pipelineeingabe akzeptieren:False
Platzhalterzeichen akzeptieren: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, auch ein nicht beendeter Fehler, wird die aktuelle Instanz des geplanten Auftrags nicht ausgeführt, und der Status ist fehlgeschlagen.

Typ:ScriptBlock
Position:Named
Standardwert:None
Erforderlich:False
Pipelineeingabe akzeptieren:False
Platzhalterzeichen akzeptieren: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.

Um den aktuellen Ausführungsverlauf und die Auftragsergebnisse zu löschen, verwenden Sie den ClearExecutionHistory-Parameter des Set-ScheduledJob Cmdlets.

Typ:Int32
Position:Named
Standardwert:32
Erforderlich:False
Pipelineeingabe akzeptieren:False
Platzhalterzeichen akzeptieren:False

-Name

Gibt einen Namen für den geplanten Auftrag an. Der Name wird auch für alle gestarteten Instanzen des geplanten Auftrags verwendet. Der Name muss auf dem Computer eindeutig sein. Dieser Parameter ist erforderlich.

Typ:String
Position:0
Standardwert:None
Erforderlich:True
Pipelineeingabe akzeptieren:False
Platzhalterzeichen akzeptieren:False

-RunAs32

Führt den geplanten Auftrag in einem 32-Bit-Prozess aus.

Typ:SwitchParameter
Position:Named
Standardwert:None
Erforderlich:False
Pipelineeingabe akzeptieren:False
Platzhalterzeichen akzeptieren: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.

Typ:TimeSpan
Position:Named
Standardwert:None
Erforderlich:False
Pipelineeingabe akzeptieren:False
Platzhalterzeichen akzeptieren:False

-RunNow

Startet sofort einen Auftrag, sobald das Register-ScheduledJob Cmdlet ausgeführt wird. Dieser Parameter beseitigt die Notwendigkeit, task scheduler auszulösen, um ein Windows PowerShell-Skript unmittelbar nach der Registrierung auszuführen, und erfordert nicht, dass Benutzer einen Trigger erstellen, der ein Startdatum und eine Startzeit angibt.

Typ:SwitchParameter
Position:Named
Standardwert:None
Erforderlich:False
Pipelineeingabe akzeptieren:False
Platzhalterzeichen akzeptieren: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 Zeitplanauftrag registrieren oder die Set-ScheduledJobOption Optionen Set-ScheduledJob oder Cmdlets verwenden, um die Optionen 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.

@{StartIfOnBattery=$False; StopIfGoingOnBattery=$True; WakeToRun=$False; StartIfNotIdle=$False; IdleDuration="00:10:00"; IdleTimeout="01:00:00"; StopIfGoingOffIdle=$True; RestartOnIdleResume=$False; ShowInTaskScheduler=$True; RunElevated=$False; RunWithoutNetwork=$False; DoNotAllowDemandStart=$False; MultipleInstancePolicy="IgnoreNew"}

Typ:ScheduledJobOptions
Position:Named
Standardwert:None
Erforderlich:False
Pipelineeingabe akzeptieren:False
Platzhalterzeichen akzeptieren: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.

Typ:ScriptBlock
Position:1
Standardwert:None
Erforderlich:True
Pipelineeingabe akzeptieren:False
Platzhalterzeichen akzeptieren: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 den Zeitplanauftrag. Der Trigger kann einen einmaligen oder Wiederholungszeitplan oder ein Ereignis angeben, z. B. die Anmeldung eines Benutzers oder den Start von Windows.

Der Trigger-Parameter ist optional. Sie können einen Trigger hinzufügen, wenn Sie den geplanten Auftrag erstellen, die Add-JobTriggerAuslöser Set-JobTriggeroder Set-ScheduledJob Cmdlets später hinzufügen oder ändern oder das Start-Job Cmdlet verwenden, um den geplanten Auftrag sofort zu starten. Sie können auch einen geplanten Auftrag ohne Trigger erstellen und verwalten, der als Vorlage verwendet wird.

Verwenden Sie die folgenden Schlüssel, um eine Hashtabelle zu übermitteln:

  • Häufigkeit: Täglich, Wöchentlich, AtStartup, AtLogon
  • At: Any valid time string
  • DaysOfWeek - Beliebige Kombination von Tagnamen
  • Intervall – Beliebige gültige Häufigkeitsintervalle
  • RandomDelay: Beliebige gültige Zeitbereichszeichenfolge
  • Benutzer: Jeder gültige Benutzer. Wird nur mit dem AtLogon-Häufigkeitswert verwendet

Zum Beispiel:

@{Frequency="Once"; At="3am"; DaysOfWeek="Monday", "Wednesday"; Interval=2; RandomDelay="30minutes"; User="Domain1\User01"}

Typ:ScheduledJobTrigger[]
Position:Named
Standardwert:None
Erforderlich:False
Pipelineeingabe akzeptieren:False
Platzhalterzeichen akzeptieren:False

-WhatIf

Zeigt, was geschieht, wenn das Cmdlet ausgeführt wird. Das Cmdlet wird nicht ausgeführt.

Typ:SwitchParameter
Aliase:wi
Position:Named
Standardwert:False
Erforderlich:False
Pipelineeingabe akzeptieren:False
Platzhalterzeichen akzeptieren:False

Eingaben

None

Sie können keine Objekte an dieses Cmdlet weiterleiten.

Ausgaben

ScheduledJobDefinition

Dieses Cmdlet gibt ein ScheduledJobDefinition -Objekt zurück, das den registrierten Auftrag darstellt.

Hinweise

Jeder geplante Auftrag wird in einem Unterverzeichnis des $HOME\AppData\Local\Microsoft\Windows\PowerShell\ScheduledJobs Verzeichnisses auf dem lokalen Computer gespeichert. Das Unterverzeichnis wird für den geplanten Auftrag benannt und enthält eine XML-Datei für den geplanten Auftrag sowie Einträge zu dessen Ausführungsverlauf. Weitere Informationen zu geplanten Aufträgen auf dem Datenträger finden Sie unter about_Scheduled_Jobs_Advanced.

Geplante Aufträge, die Sie in Windows PowerShell erstellen, werden im Aufgabenplaner im Ordner "Taskplaner Library\Microsoft\Windows\PowerShell\ScheduledJobs " angezeigt. Sie können den Taskplaner zum Anzeigen und Bearbeiten des geplanten Auftrags verwenden.

Sie können den Task Scheduler, das schtasks.exe Befehlszeilentool und die Cmdlets "Task Scheduler" verwenden, um geplante Aufträge zu verwalten, die Sie mit den Cmdlets "Geplanter Auftrag" erstellen. Sie können jedoch die Cmdlets "Geplanter Auftrag" nicht verwenden, um Aufgaben zu verwalten, die Sie in Task Scheduler erstellen.

Wenn ein Befehl für einen geplanten Auftrag einen Fehler verursacht, gibt Windows PowerShell eine Fehlermeldung zurück. Wenn der Auftrag jedoch fehlschlägt, wenn der Taskplaner versucht, ihn auszuführen, ist der Fehler für Windows PowerShell nicht verfügbar.

Wenn ein geplanter Auftrag nicht ausgeführt wird, verwenden Sie die folgenden Methoden, um den Grund zu finden:

  • Stellen Sie sicher, dass der Auftragstrigger ordnungsgemäß festgelegt ist.
    • Stellen Sie sicher, dass die in den Auftragsoptionen festgelegten Bedingungen erfüllt sind.
  • Stellen Sie sicher, dass das Benutzerkonto, unter dem der Auftrag ausgeführt wird, über die Berechtigung zum Ausführen der Befehle oder Skripts im Auftrag verfügt.
  • Überprüfen Sie den Vorgangsplanerverlauf auf Fehler.
  • Überprüfen Sie das Ereignisprotokoll für den Taskplaner auf Fehler.

Weitere Informationen finden Sie unter about_Scheduled_Jobs_Troubleshooting.