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-JobStop-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.

Lihat juga