Informacje o zaplanowanych zadaniachAbout Scheduled Jobs Basics
Krótki opisShort description
Wyjaśnia, jak tworzyć zaplanowane zadania i zarządzać nimi.Explains how to create and manage scheduled jobs.
Długi opisLong description
W tym dokumencie przedstawiono sposób wykonywania podstawowych zadań związanych z tworzeniem zaplanowanych zadań i zarządzaniem nimi.This document shows how to perform basic tasks of creating and managing scheduled jobs. Aby uzyskać więcej informacji na temat bardziej zaawansowanych zadań, zobacz about_Scheduled_Jobs_Advanced.For information about more advanced tasks, see about_Scheduled_Jobs_Advanced.
Aby uzyskać więcej informacji o poleceniach cmdlet zawartych w module PSScheduledJob , zobacz PSScheduledJob.For more information about the cmdlets contained in the PSScheduledJob module, see PSScheduledJob.
Jak utworzyć zaplanowane zadanieHow to create a scheduled job
Aby utworzyć zaplanowane zadanie, użyj Register-ScheduledJob
polecenia cmdlet.To create a scheduled job, use the Register-ScheduledJob
cmdlet. Polecenie cmdlet wymaga nazwy i poleceń lub skryptu uruchamianego przez zadanie.The cmdlet requires a name and the commands or script that the job runs. Zadanie można uruchomić natychmiast, dodając parametr RunNow lub tworząc wyzwalacz zadania i ustawiając opcje zadania podczas tworzenia zadania lub edytując istniejące zadanie.You can either run the job immediately by adding the RunNow parameter, or create a job trigger and set job options when you create the job, or edit an existing job.
Aby utworzyć zadanie, które uruchamia skrypt, użyj parametru FilePath , aby określić ścieżkę do pliku skryptu.To create a job that runs a script, use the FilePath parameter to specify the path to the script file. Aby utworzyć zadanie, które uruchamia polecenia, należy użyć parametru ScriptBlock .To create a job that runs commands, use the ScriptBlock parameter.
Polecenie Register-ScheduledJob
cmdlet tworzy ProcessJob , który uruchamia Get-Process
polecenie.The Register-ScheduledJob
cmdlet creates the ProcessJob , which runs a Get-Process
command. To zaplanowane zadanie ma domyślne opcje zadania i brak wyzwalacza zadania.This scheduled job has the default job options and no job trigger.
Register-ScheduledJob -Name ProcessJob -ScriptBlock { Get-Process }
Id Name Triggers Command Enabled
-- ---- -------- ------- -------
8 ProcessJob {} Get-Process True
Jak utworzyć wyzwalacz zadaniaHow to create a job trigger
Wyzwalacze zadań automatycznie uruchamiają zaplanowane zadanie.Job triggers start a scheduled job automatically. Wyzwalacz zadania może być harmonogramem jednorazowym lub cyklicznym lub zdarzeniem, na przykład podczas logowania użytkownika lub uruchamiania systemu Windows.A job trigger can be one-time or recurring schedule or an event, such as when a user logs on or Windows starts. Każde zadanie może mieć zero, jeden lub wiele wyzwalaczy zadań.Each job can have zero, one, or multiple job triggers.
Aby utworzyć wyzwalacz zadania, użyj New-JobTrigger
polecenia cmdlet.To create a job trigger, use the New-JobTrigger
cmdlet. Następujące polecenie tworzy wyzwalacz zadania, który uruchamia zadanie co poniedziałek i czwartek o godzinie 5:00.The following command creates a job trigger that starts a job every Monday and Thursday at 5:00 AM.
Polecenie zapisuje wyzwalacz zadania w $T
zmiennej.The command saves the job trigger in the $T
variable.
$T = New-JobTrigger -Weekly -DaysOfWeek "Monday", "Thursday" -At "5:00 AM"
Wyzwalacze zadań są opcjonalne.Job triggers are optional. Zaplanowane zadanie można uruchomić w dowolnym momencie, dodając parametr RunNow do Register-ScheduledJob
polecenia lub korzystając z Start-Job
poleceń cmdlet.You can start a scheduled job at any time by adding the RunNow parameter to your Register-ScheduledJob
command, or by using the Start-Job
cmdlets.
Jak dodać wyzwalacz zadaniaHow to add a job trigger
Po dodaniu wyzwalacza zadania do zaplanowanego zadania, wyzwalacz zadania zostanie dodany do pliku XML zaplanowanego zadania dla zaplanowanego zadania i zostaje częścią zaplanowanego zadania.When you add a job trigger to a scheduled job, the job trigger is added to the scheduled job XML file for the scheduled job and becomes part of the scheduled job.
Możesz dodać wyzwalacz zadania do zaplanowanego zadania podczas tworzenia zaplanowanego zadania lub edytować istniejące zadanie.You can add a job trigger to a scheduled job when you create the scheduled job, or edit an existing job. Wyzwalacz zadania zaplanowanego zadania można zmienić w dowolnym momencie.You can change the job trigger of a scheduled job at any time.
Program PowerShell używa niektórych z tych samych wyzwalaczy zadań, których Harmonogram zadań używa.PowerShell uses some of the same job triggers that Task Scheduler uses. Aby uzyskać szczegółowe informacje o wyzwalaczach zadań, zobacz temat pomocy dla polecenia cmdlet New-JobTrigger .For detailed information about job triggers, see the help topic for the New-JobTrigger cmdlet.
Poniższy przykład używa korzystając do tworzenia $JobParms
wartości parametrów, które są przesyłane do Register-ScheduledJob
polecenia cmdlet.The following example uses splatting to create $JobParms
which are parameter values that are passed to the Register-ScheduledJob
cmdlet. Aby uzyskać więcej informacji, zobacz about_Splatting. MD.For more information, see about_Splatting.md.
Register-ScheduledJob
Używa @JobParms
do tworzenia zaplanowanego zadania.The Register-ScheduledJob
uses @JobParms
to create a scheduled job. Używa parametru wyzwalacza , aby określić wyzwalacz zadania w $T
zmiennej.It uses the Trigger parameter to specify the job trigger in the $T
variable.
$JobParms = @{
Name = "ProcessJob"
ScriptBlock = {Get-Command}
Trigger = $T
}
Register-ScheduledJob @JobParms
Możesz również dodać wyzwalacz zadania do istniejącego zaplanowanego zadania w dowolnym momencie.You can also add a job trigger to an existing scheduled job at any time. Add-JobTrigger
Polecenie cmdlet dodaje wyzwalacz zadania w $T
zmiennej do zaplanowanego zadania ProcessJob .The Add-JobTrigger
cmdlet adds the job trigger in the $T
variable to the ProcessJob scheduled job.
Add-JobTrigger -Name ProcessJob -Trigger $T
W efekcie wyzwalacz zadania uruchamia ProcessJob automatycznie co poniedziałek i czwartek o godzinie 5:00.As a result, the job trigger starts the ProcessJob automatically every Monday and Thursday at 5:00 AM.
Jak uzyskać wyzwalacz zadaniaHow to get a job trigger
Aby uzyskać wyzwalacz zadania zaplanowanego zadania, użyj Get-JobTrigger
polecenia cmdlet.To get the job trigger of a scheduled job, use the Get-JobTrigger
cmdlet. Użyj parametrów name , ID i inputobject , aby określić zaplanowane zadanie, a nie wyzwalacz zadania.Use the Name , ID , and InputObject parameters to specify the scheduled job, not the job trigger.
Get-JobTrigger
Pobiera wyzwalacz zadania ProcessJob.Get-JobTrigger
gets the job trigger of the ProcessJob.
Get-JobTrigger -Name ProcessJob
Id Frequency Time DaysOfWeek Enabled
-- --------- ---- ---------- -------
1 Weekly 11/7/2011 5:00:00 AM {Monday, Thursday} True
Tworzenie opcji zadaniaHow to create job options
Opcje zadania określają warunki uruchamiania i uruchamiania zadania.Job options establish conditions for starting and running the job. Każde zadanie ma domyślne opcje zadania, chyba że zostaną zmienione.Every job has the default job options unless you change them. Ponieważ opcje zadania mogą uniemożliwiać uruchomienie zadania w zaplanowanym czasie, ważne jest zrozumienie opcji zadania i korzystanie z nich uważnie.Because job options can prevent a job from running at the scheduled time, it is important to understand the job options and use them carefully.
Program PowerShell używa tych samych opcji zadań, które są używane Harmonogram zadań.PowerShell uses the same job options that Task Scheduler uses. Aby uzyskać szczegółowe informacje na temat opcji zadania, zobacz temat pomocy dla polecenie New-ScheduledJobOption.For detailed information about the job options, see the help topic for New-ScheduledJobOption.
Opcje zadania są przechowywane w pliku XML zaplanowane zadanie.Job options are stored in the scheduled job XML file. Można ustawić opcje zadania podczas tworzenia zaplanowanego zadania lub w dowolnym momencie.You can set job options when you create a scheduled job or change them at any time.
New-ScheduledJobOption
Polecenie cmdlet tworzy zaplanowaną opcję zadania, w której opcja zaplanowanego zadania WakeToRun jest ustawiona na wartość true.The New-ScheduledJobOption
cmdlet creates a scheduled job option in which the WakeToRun scheduled job option is set to True. Opcja WakeToRun uruchamia zaplanowane zadanie, nawet jeśli komputer jest w stanie uśpienia lub hibernacji w zaplanowanym czasie rozpoczęcia.The WakeToRun option runs the scheduled job even if the computer is in the Sleep or Hibernate state at the scheduled start time. Polecenie zapisuje opcje zadania w $O
zmiennej.The command saves the job options in the $O
variable.
$O = New-ScheduledJobOption -WakeToRun
Jak uzyskać opcje zadaniaHow to get job options
Aby uzyskać opcje zadania zaplanowanego zadania, użyj Get-ScheduledJobOption
polecenia cmdlet.To get the job options of a scheduled job, use the Get-ScheduledJobOption
cmdlet. Użyj parametrów name , ID i inputobject , aby określić zaplanowane zadanie, a nie opcje zadania.Use the Name , ID , and InputObject parameters to specify the scheduled job, not the job options.
Get-ScheduledJobOption
Pobiera opcje zadania ProcessJob.Get-ScheduledJobOption
gets the job options of the ProcessJob.
Get-ScheduledJobOption -Name ProcessJob
StartIfOnBatteries : False
StopIfGoingOnBatteries : True
WakeToRun : False
StartIfNotIdle : True
StopIfGoingOffIdle : False
RestartOnIdleResume : False
IdleDuration : 00:10:00
IdleTimeout : 01:00:00
ShowInTaskScheduler : True
RunElevated : False
RunWithoutNetwork : True
DoNotAllowDemandStart : False
MultipleInstancePolicy : IgnoreNew
JobDefinition : Microsoft.PowerShell.ScheduledJob.ScheduledJobDefinition
Jak zmienić opcje zadaniaHow to change job options
Opcje zadania zaplanowanego zadania można zmienić podczas tworzenia zaplanowanego zadania lub edytowania istniejącego zadania.You can change the job options of a scheduled job when you create a scheduled job or edit an existing job.
Splatted $JobParms
są przesyłane do Add-JobTrigger
polecenia cmdlet, aby utworzyć zadanie procesu.The splatted $JobParms
are passed to the Add-JobTrigger
cmdlet to create the process job. Używa parametru ScheduledJobOption do określenia opcji zadania w $O
zmiennej.It uses the ScheduledJobOption parameter to specify the job options in the $O
variable.
$JobParms = @{
Name = "ProcessJob"
ScriptBlock = {Get-Process}
ScheduledJobOption = $O
}
Add-JobTrigger @JobParms
Możesz również zmienić opcje zadania na istniejące zaplanowane zadanie w dowolnym momencie.You can also change the job options to an existing scheduled job at any time.
Następujące polecenie używa polecenia Set-ScheduledJobOption
cmdlet, aby zmienić wartość opcji WakeToRun ProcessJob scheduledJob na true.The following command uses the Set-ScheduledJobOption
cmdlet to change the value of the WakeToRun option of the ProcessJob scheduledJob to True.
Set
Polecenia cmdlet w module PSScheduledJob , takie jak Set-ScheduledJobOption
polecenie cmdlet, nie mają parametrów name ani ID .The Set
cmdlets in the PSScheduledJob module, such as the Set-ScheduledJobOption
cmdlet, don't have Name or ID parameters. Można użyć parametru inputobject do określenia opcji zaplanowanego zadania lub potoku zaplanowanego zadania z Get-ScheduledJobOption
polecenia cmdlet do Set-ScheduledJobOption
.You can use the InputObject parameter to specify the scheduled job options or pipe a scheduled job from Get-ScheduledJobOption
cmdlet to Set-ScheduledJobOption
.
Ten przykład używa Get-ScheduledJob
polecenia cmdlet, aby pobrać ProcessJob.This example uses the Get-ScheduledJob
cmdlet to get the ProcessJob. Używa Get-ScheduledJobOption
polecenia cmdlet w celu uzyskania opcji zadania w ProcessJob i Set-ScheduledJobOption
polecenia cmdlet w celu zmiany opcji zadania WakeToRun w ProcessJob na true.It uses the Get-ScheduledJobOption
cmdlet to get the job options in the ProcessJob and the Set-ScheduledJobOption
cmdlet to change the WakeToRun job option in the ProcessJob to True.
Get-ScheduledJob -Name ProcessJob | Get-ScheduledJobOption |
Set-ScheduledJobOption -WakeToRun
Jak uzyskać zaplanowane wystąpienia zadańHow to get scheduled job instances
Po rozpoczęciu zaplanowanego zadania program PowerShell tworzy wystąpienie zadania podobne do standardowego zadania w tle programu PowerShell.When a scheduled job is started, PowerShell creates a job instance that is similar to a standard PowerShell background job. Możesz użyć poleceń cmdlet zadania, takich jak Get-Job
, Stop-Job
i Receive-Job
do zarządzania wystąpieniami zadań.You can use the job cmdlets, such as Get-Job
, Stop-Job
and Receive-Job
to manage the job instances.
Uwaga
Aby użyć poleceń cmdlet zadania w wystąpieniach zaplanowanych zadań, moduł PSScheduledJob musi zostać zaimportowany do sesji.To use the job cmdlets on instances of scheduled jobs, the PSScheduledJob module must be imported into the session. Aby zaimportować moduł PSScheduledJob , wpisz Import-Module PSScheduledJob
lub użyj dowolnego zaplanowanego polecenia cmdlet zadania, takiego jak Get-ScheduledJob
.To import the PSScheduledJob module, type Import-Module PSScheduledJob
or use any scheduled job cmdlet, such as Get-ScheduledJob
.
Aby uzyskać wszystkie wystąpienia zaplanowanych zadań programu PowerShell i wszystkie aktywne zadania standardowe, użyj Get-Job
polecenia cmdlet.To get all instances of PowerShell scheduled jobs, and all active standard jobs, use the Get-Job
cmdlet. Import-Module
Polecenie cmdlet importuje moduł PSScheduledJob i Get-Job
Pobiera zadania na komputerze lokalnym.The Import-Module
cmdlet imports the PSScheduledJob module and Get-Job
gets the jobs on the local computer.
Import-Module PSScheduledJob
Get-Job
Get-Job
Pobiera wystąpienia elementu ProcessJob na komputerze lokalnym.Get-Job
gets instances of ProcessJob on the local computer.
Get-Job -Name ProcessJob
Id Name PSJobTypeName State HasMoreData Location Command
-- ---- ------------ ----- ----------- -------- -------
45 ProcessJob PSScheduledJob Completed True localhost Get-Process
46 ProcessJob PSScheduledJob Completed True localhost Get-Process
47 ProcessJob PSScheduledJob Completed True localhost Get-Process
48 ProcessJob PSScheduledJob Completed True localhost Get-Process
49 ProcessJob PSScheduledJob Completed True localhost Get-Process
50 ProcessJob PSScheduledJob Completed True localhost Get-Process
51 ProcessJob PSScheduledJob Completed True localhost Get-Process
Domyślny ekran nie pokazuje czasu rozpoczęcia, który zwykle odróżnia wystąpienia tego samego zaplanowanego zadania.The default display does not show the start time, which typically distinguishes instances of the same scheduled job.
Get-Job
Polecenie cmdlet wysyła obiekty w dół potoku.The Get-Job
cmdlet sends objects down the pipeline. Format-Table
Polecenie cmdlet wyświetla nazwę , Identyfikator i właściwości BeginTime zaplanowanego zadania.The Format-Table
cmdlet displays the Name , ID , and BeginTime properties of the scheduled job.
Get-Job ProcessJob | Format-Table -Property Name, ID, BeginTime
Name Id BeginTime
---- -- ---------
ProcessJob 43 11/2/2011 3:00:02 AM
ProcessJob 44 11/3/2011 3:00:02 AM
ProcessJob 45 11/4/2011 3:00:02 AM
ProcessJob 46 11/5/2011 3:00:02 AM
ProcessJob 47 11/6/2011 3:00:02 AM
ProcessJob 48 11/7/2011 12:00:01 AM
ProcessJob 49 11/7/2011 3:00:02 AM
ProcessJob 50 11/8/2011 3:00:02 AM
Pobierz zaplanowane wyniki zadaniaGet scheduled job results
Aby uzyskać wyniki wystąpienia zaplanowanego zadania, użyj Receive-Job
polecenia cmdlet.To get the results of an instance of a scheduled job, use the Receive-Job
cmdlet.
Uwaga
Aby użyć poleceń cmdlet zadania w wystąpieniach zaplanowanych zadań, moduł PSScheduledJob musi zostać zaimportowany do sesji.To use the Job cmdlets on instances of scheduled jobs, the PSScheduledJob module must be imported into the session. Aby zaimportować moduł PSScheduledJob , wpisz Import-Module PSScheduledJob
lub użyj dowolnego zaplanowanego polecenia cmdlet zadania, takiego jak Get-ScheduledJob
.To import the PSScheduledJob module, type Import-Module PSScheduledJob
or use any scheduled job cmdlet, such as Get-ScheduledJob
.
Ten przykład pobiera wyniki najnowszego wystąpienia zaplanowanego zadania ProcessJob (ID = 51).This examples gets the results of the newest instance of the ProcessJob scheduled job (ID = 51).
Import-Module PSScheduledJob
Receive-Job -ID 51 -Keep
Wyniki zaplanowanych zadań są zapisywane na dysku, więc parametr Keep Receive-Job
nie jest wymagany.The results of scheduled jobs are saved on disk, so the Keep parameter of Receive-Job
is not required. Jednak bez parametru Keep można uzyskać wyniki zaplanowanego zadania tylko raz w każdej sesji programu PowerShell.However, without the Keep parameter, you can get the results of a scheduled job only once in each PowerShell session. Aby rozpocząć nową sesję programu PowerShell, wpisz PowerShell
lub Otwórz nowe okno programu PowerShell.To start a new PowerShell session, type PowerShell
or open a new PowerShell window.
Zobacz teżSee also
about_Scheduled_Jobs_Advancedabout_Scheduled_Jobs_Advanced
about_Scheduled_Jobs_Troubleshootingabout_Scheduled_Jobs_Troubleshooting
about_Scheduled_Jobsabout_Scheduled_Jobs
about_Splatting. MDabout_Splatting.md
Polecenia cmdlet modułu PSScheduledJobPSScheduledJob module cmdlets