about_Scheduled_Jobs
Deskripsi singkat
Menjelaskan pekerjaan terjadwal dan menjelaskan cara menggunakan dan mengelola pekerjaan terjadwal di PowerShell dan di Penjadwal Tugas.
Deskripsi panjang
Pekerjaan terjadwal PowerShell adalah hibrid pekerjaan latar belakang PowerShell yang berguna dan tugas Task Scheduler.
Seperti pekerjaan latar belakang PowerShell, pekerjaan terjadwal berjalan secara asinkron di latar belakang. Instans pekerjaan terjadwal yang telah berjalan dapat dikelola dengan menggunakan cmdlet pekerjaan, seperti Start-Job
, , Get-Job
Stop-Job
, dan Receive-Job
.
Seperti tugas Task Scheduler, pekerjaan terjadwal disimpan ke disk. Anda dapat melihat dan mengelola pekerjaan di Task Scheduler, mengaktifkan dan menonaktifkannya sesuai kebutuhan, menjalankannya atau menggunakannya sebagai templat, membuat jadwal satu kali atau berulang untuk memulai pekerjaan, atau mengatur kondisi di mana pekerjaan dimulai.
Selain itu, hasil instans pekerjaan terjadwal disimpan ke disk dalam format yang mudah diakses, menyediakan log output pekerjaan yang sedang berjalan. Pekerjaan terjadwal dilengkapi dengan sekumpulan cmdlet yang disesuaikan untuk mengelolanya. Cmdlet memungkinkan Anda membuat, mengedit, mengelola, menonaktifkan, dan mengaktifkan kembali pekerjaan terjadwal, pemicu pekerjaan, dan opsi pekerjaan.
Serangkaian alat yang komprehensif dan fleksibel ini menjadikan pekerjaan terjadwal sebagai komponen penting dari banyak solusi IT PowerShell profesional.
Cmdlet pekerjaan terjadwal disertakan dalam modul PSScheduledJob yang diinstal dengan PowerShell. Modul ini diperkenalkan di PowerShell 3.0 dan berfungsi di PowerShell 3.0 dan versi PowerShell yang lebih baru. Untuk informasi selengkapnya tentang cmdlet yang terkandung dalam modul PSScheduledJob , lihat PSScheduledJob.
Untuk informasi selengkapnya tentang pekerjaan latar belakang PowerShell, lihat about_Jobs.
Untuk informasi selengkapnya tentang Penjadwal Tugas, lihat Penjadwal Tugas.
Catatan
Anda dapat melihat dan mengelola pekerjaan terjadwal PowerShell di Task Scheduler. Pekerjaan PowerShell dan cmdlet pekerjaan terjadwal hanya berfungsi pada pekerjaan terjadwal yang dibuat di PowerShell.
Mulai Cepat
Contoh ini membuat pekerjaan terjadwal yang dimulai setiap hari pada pukul 03.00 dan menjalankan Get-Process
cmdlet. Pekerjaan dimulai bahkan jika komputer berjalan pada baterai.
$trigger = New-JobTrigger -Daily -At 3AM
$options = New-ScheduledJobOption -StartIfOnBattery
Register-ScheduledJob -Name ProcessJob -ScriptBlock {Get-Process} `
-Trigger $trigger -ScheduledJobOption $options
Get-ScheduledJob
Cmdlet mendapatkan pekerjaan terjadwal di komputer lokal.
Get-ScheduledJob
Id Name Triggers Command Enabled
-- ---- -------- ------- -------
7 ProcessJob {1} Get-Process True
Get-JobTrigger
mendapatkan pemicu pekerjaan ProcessJob. Parameter input menentukan pekerjaan terjadwal, bukan pemicu, karena pemicu disimpan dalam pekerjaan terjadwal.
Get-JobTrigger -Name ProcessJob
Id Frequency Time DaysOfWeek Enabled
-- --------- ---- ---------- -------
1 Daily 11/5/2011 3:00:00 AM True
Contoh ini menggunakan parameter ContinueIfGoingOnBattery dari Set-ScheduledJob
cmdlet untuk mengubah properti StopIfGoingOnBatteries dari ProcessJob menjadi False.
Get-ScheduledJob -Name ProcessJob | Set-ScheduledJobOption `
-ContinueIfGoingOnBattery -Passthru
StartIfOnBatteries : True
StopIfGoingOnBatteries : False
WakeToRun : True
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
Get-ScheduledJob
Cmdlet mendapatkan pekerjaan terjadwal ProcessJob.
Get-ScheduledJob ProcessJob
Id Name Triggers Command Enabled
-- ---- -------- ------- -------
7 ProcessJob {1} Get-Process True
Get-Job
Cmdlet mendapatkan semua instans pekerjaan terjadwal ProcessJob yang telah berjalan sejauh ini. Get-Job
Cmdlet mendapatkan pekerjaan terjadwal hanya ketika modul PSScheduledJob diimpor ke sesi saat ini.
Tip
Perhatikan bahwa Anda menggunakan cmdlet pekerjaan terjadwal untuk mengelola pekerjaan terjadwal, tetapi Anda menggunakan cmdlet pekerjaan untuk mengelola instans pekerjaan terjadwal.
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
Receive-Job
Cmdlet mendapatkan hasil instans terbaru dari pekerjaan terjadwal ProcessJob (ID = 51).
Receive-Job -ID 51
Meskipun Receive-Job
perintah tidak menyertakan parameter Keep , hasil pekerjaan disimpan pada disk sampai Anda menghapusnya atau jumlah hasil maksimum terlampaui.
Hasil pekerjaan tidak lagi tersedia dalam sesi ini, tetapi jika Anda memulai sesi baru atau membuka jendela PowerShell baru, hasil pekerjaan tersedia lagi.
Perintah berikut menggunakan parameter DefinitionName cmdlet Start-Job
untuk memulai pekerjaan terjadwal ProcessJob.
Pekerjaan yang dimulai dengan menggunakan Start-Job
cmdlet adalah pekerjaan latar belakang PowerShell standar, bukan instans pekerjaan terjadwal. Seperti semua pekerjaan latar belakang, pekerjaan ini segera dimulai, mereka tidak tunduk pada opsi pekerjaan atau terpengaruh oleh pemicu pekerjaan, dan outputnya tidak disimpan di direktori output direktori pekerjaan terjadwal.
Start-Job -DefinitionName ProcessJob
Unregister-ScheduledJob
Cmdlet menghapus pekerjaan terjadwal ProcessJob dan semua hasil yang disimpan dari instans pekerjaannya.
Unregister-ScheduledJob ProcessJob
Konsep pekerjaan terjadwal
Pekerjaan terjadwal menjalankan perintah atau skrip. Pekerjaan terjadwal dapat mencakup pemicu pekerjaan yang memulai opsi pekerjaan dan pekerjaan yang mengatur kondisi untuk menjalankan pekerjaan.
Pemicu pekerjaan memulai pekerjaan terjadwal secara otomatis. Pemicu pekerjaan dapat mencakup jadwal satu kali atau berulang atau menentukan peristiwa, seperti saat pengguna masuk atau Windows dimulai. Pekerjaan terjadwal dapat memiliki satu atau beberapa pemicu pekerjaan, dan Anda dapat membuat, menambahkan, mengaktifkan, menonaktifkan, dan mendapatkan pemicu pekerjaan.
Pemicu pekerjaan bersifat opsional. Anda dapat segera memulai pekerjaan terjadwal dengan menggunakan Start-Job cmdlet
, atau dengan menambahkan parameter RunNow ke perintah Anda Register-ScheduledJob
.
Opsi pekerjaan mengatur kondisi untuk menjalankan pekerjaan terjadwal. Setiap pekerjaan terjadwal memiliki satu objek opsi pekerjaan. Anda dapat membuat dan mengedit objek opsi pekerjaan dan menambahkannya ke satu atau beberapa pekerjaan terjadwal.
Setiap kali pekerjaan terjadwal dimulai, instans pekerjaan dibuat. Gunakan cmdlet pekerjaan PowerShell untuk melihat dan mengelola instans pekerjaan.
Pekerjaan terjadwal disimpan ke disk dan menggunakan kata kerja cmdlet, Register
, bukan New
. File XML terletak di komputer lokal di direktori $HOME\AppData\Local\Microsoft\Windows\PowerShell\ScheduledJobs
.
PowerShell membuat direktori untuk setiap pekerjaan terjadwal dan menyimpan perintah pekerjaan, pemicu pekerjaan, opsi pekerjaan, dan hasil pekerjaan di direktori pekerjaan terjadwal. Pemicu pekerjaan dan opsi pekerjaan tidak disimpan ke disk secara independen. Mereka disimpan dalam XML pekerjaan terjadwal dari setiap pekerjaan terjadwal yang terkait dengannya.
Pekerjaan terjadwal, pemicu pekerjaan, dan opsi pekerjaan muncul di PowerShell sebagai objek. Objek saling terkait, yang membuatnya mudah ditemukan dan digunakan dalam perintah dan skrip.
Pekerjaan terjadwal muncul sebagai objek ScheduledJobDefinition . Objek ScheduledJobDefinition memiliki properti JobTriggers yang berisi pemicu pekerjaan pekerjaan terjadwal dan properti Opsi yang berisi opsi pekerjaan. Objek ScheduledJobTriggers dan ScheduledJobOptions yang mewakili pemicu pekerjaan dan opsi pekerjaan, masing-masing memiliki properti JobDefinition yang berisi pekerjaan terjadwal yang terkait dengannya. Interkoneksi rekursif ini memudahkan untuk menemukan pemicu dan opsi pekerjaan terjadwal dan untuk menemukan, skrip, dan menampilkan pekerjaan terjadwal yang terkait dengan pemicu pekerjaan atau opsi pekerjaan apa pun.