Bagikan melalui


about_Scheduled_Jobs_Basics

Deskripsi singkat

Menjelaskan cara membuat dan mengelola pekerjaan terjadwal.

Deskripsi panjang

Dokumen ini memperlihatkan cara melakukan tugas dasar untuk membuat dan mengelola pekerjaan terjadwal. Untuk informasi tentang tugas tingkat lanjut lainnya, lihat about_Scheduled_Jobs_Advanced.

Untuk informasi selengkapnya tentang cmdlet yang terkandung dalam modul PSScheduledJob , lihat PSScheduledJob.

Cara membuat pekerjaan terjadwal

Untuk membuat pekerjaan terjadwal, gunakan Register-ScheduledJob cmdlet . Cmdlet memerlukan nama dan perintah atau skrip yang dijalankan pekerjaan. Anda dapat segera menjalankan pekerjaan dengan menambahkan parameter RunNow , atau membuat pemicu pekerjaan dan mengatur opsi pekerjaan saat Anda membuat pekerjaan, atau mengedit pekerjaan yang ada.

Untuk membuat pekerjaan yang menjalankan skrip, gunakan parameter FilePath untuk menentukan jalur ke file skrip. Untuk membuat pekerjaan yang menjalankan perintah, gunakan parameter ScriptBlock .

Register-ScheduledJob Cmdlet membuat ProcessJob, yang menjalankan Get-Process perintah. Pekerjaan terjadwal ini memiliki opsi pekerjaan default dan tidak ada pemicu pekerjaan.

Register-ScheduledJob -Name ProcessJob -ScriptBlock { Get-Process }
Id         Name            Triggers        Command       Enabled
--         ----            --------        -------       -------
8          ProcessJob      {}              Get-Process   True

Cara membuat pemicu pekerjaan

Pemicu pekerjaan memulai pekerjaan terjadwal secara otomatis. Pemicu pekerjaan dapat berupa jadwal satu kali atau berulang atau peristiwa, seperti saat pengguna masuk atau Windows dimulai. Setiap pekerjaan dapat memiliki nol, satu, atau beberapa pemicu pekerjaan.

Untuk membuat pemicu pekerjaan, gunakan New-JobTrigger cmdlet . Perintah berikut membuat pemicu pekerjaan yang memulai pekerjaan setiap Senin dan Kamis pukul 05.00. Perintah menyimpan pemicu pekerjaan dalam $T variabel.

$T = New-JobTrigger -Weekly -DaysOfWeek "Monday", "Thursday" -At "5:00 AM"

Pemicu pekerjaan bersifat opsional. Anda dapat memulai pekerjaan terjadwal kapan saja dengan menambahkan parameter RunNow ke perintah Anda Register-ScheduledJob , atau dengan menggunakan Start-Job cmdlet.

Cara menambahkan pemicu pekerjaan

Saat Anda menambahkan pemicu pekerjaan ke pekerjaan terjadwal, pemicu pekerjaan ditambahkan ke file XML pekerjaan terjadwal untuk pekerjaan terjadwal dan menjadi bagian dari pekerjaan terjadwal.

Anda dapat menambahkan pemicu pekerjaan ke pekerjaan terjadwal saat membuat pekerjaan terjadwal, atau mengedit pekerjaan yang sudah ada. Anda dapat mengubah pemicu pekerjaan pekerjaan terjadwal kapan saja.

PowerShell menggunakan beberapa pemicu pekerjaan yang sama dengan yang digunakan Penjadwal Tugas. Untuk informasi terperinci tentang pemicu pekerjaan, lihat topik bantuan untuk cmdlet New-JobTrigger .

Contoh berikut menggunakan splatting untuk membuat $JobParms yang merupakan nilai parameter yang diteruskan ke Register-ScheduledJob cmdlet. Untuk informasi selengkapnya, lihat about_Splatting.md. Penggunaan Register-ScheduledJob@JobParms untuk membuat pekerjaan terjadwal. Ini menggunakan parameter Pemicu untuk menentukan pemicu pekerjaan dalam $T variabel.

$JobParms = @{
  Name = "ProcessJob"
  ScriptBlock = {Get-Command}
  Trigger = $T
}

Register-ScheduledJob @JobParms

Anda juga dapat menambahkan pemicu pekerjaan ke pekerjaan terjadwal yang ada kapan saja. Add-JobTrigger Cmdlet menambahkan pemicu pekerjaan dalam $T variabel ke pekerjaan terjadwal ProcessJob.

Add-JobTrigger -Name ProcessJob -Trigger $T

Akibatnya, pemicu pekerjaan memulai ProcessJob secara otomatis setiap Senin dan Kamis pukul 05.00.

Cara mendapatkan pemicu pekerjaan

Untuk mendapatkan pemicu pekerjaan dari pekerjaan terjadwal, gunakan Get-JobTrigger cmdlet . Gunakan parameter Nama, ID, dan InputObject untuk menentukan pekerjaan terjadwal, bukan pemicu pekerjaan.

Get-JobTriggermendapatkan pemicu pekerjaan ProcessJob.

Get-JobTrigger -Name ProcessJob
Id   Frequency       Time                   DaysOfWeek              Enabled
--   ---------       ----                   ----------              -------
1    Weekly          11/7/2011 5:00:00 AM   {Monday, Thursday}      True

Cara membuat opsi pekerjaan

Opsi pekerjaan menetapkan kondisi untuk memulai dan menjalankan pekerjaan. Setiap pekerjaan memiliki opsi pekerjaan default kecuali Anda mengubahnya. Karena opsi pekerjaan dapat mencegah pekerjaan berjalan pada waktu yang dijadwalkan, penting untuk memahami opsi pekerjaan dan menggunakannya dengan hati-hati.

PowerShell menggunakan opsi pekerjaan yang sama dengan yang digunakan Task Scheduler. Untuk informasi terperinci tentang opsi pekerjaan, lihat topik bantuan untuk New-ScheduledJobOption.

Opsi pekerjaan disimpan dalam file XML pekerjaan terjadwal. Anda dapat mengatur opsi pekerjaan saat membuat pekerjaan terjadwal atau mengubahnya kapan saja.

New-ScheduledJobOption Cmdlet membuat opsi pekerjaan terjadwal di mana opsi pekerjaan terjadwal WakeToRun diatur ke True. Opsi WakeToRun menjalankan pekerjaan terjadwal meskipun komputer dalam status Tidur atau Hibernasi pada waktu mulai yang dijadwalkan. Perintah menyimpan opsi pekerjaan dalam $O variabel.

$O = New-ScheduledJobOption -WakeToRun

Cara mendapatkan opsi pekerjaan

Untuk mendapatkan opsi pekerjaan dari pekerjaan terjadwal, gunakan Get-ScheduledJobOption cmdlet . Gunakan parameter Nama, ID, dan InputObject untuk menentukan pekerjaan terjadwal, bukan opsi pekerjaan.

Get-ScheduledJobOptionmendapatkan opsi pekerjaan 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

Cara mengubah opsi pekerjaan

Anda dapat mengubah opsi pekerjaan terjadwal saat membuat pekerjaan terjadwal atau mengedit pekerjaan yang sudah ada.

Splatted $JobParms diteruskan ke Add-JobTrigger cmdlet untuk membuat pekerjaan proses. Ini menggunakan parameter ScheduledJobOption untuk menentukan opsi pekerjaan dalam $O variabel.

$JobParms = @{
  Name = "ProcessJob"
  ScriptBlock = {Get-Process}
  ScheduledJobOption = $O
}

Add-JobTrigger @JobParms

Anda juga dapat mengubah opsi pekerjaan menjadi pekerjaan terjadwal yang ada kapan saja. Perintah berikut menggunakan Set-ScheduledJobOption cmdlet untuk mengubah nilai opsi WakeToRun dari ProcessJob scheduledJob ke True.

Set Cmdlet dalam modul PSScheduledJob, seperti Set-ScheduledJobOption cmdlet, tidak memiliki parameter Nama atau ID. Anda dapat menggunakan parameter InputObject untuk menentukan opsi pekerjaan terjadwal atau menyalurkan pekerjaan terjadwal dari Get-ScheduledJobOption cmdlet ke Set-ScheduledJobOption.

Contoh ini menggunakan Get-ScheduledJob cmdlet untuk mendapatkan ProcessJob. Ini menggunakan Get-ScheduledJobOption cmdlet untuk mendapatkan opsi pekerjaan di ProcessJob dan Set-ScheduledJobOption cmdlet untuk mengubah opsi pekerjaan WakeToRun di ProcessJob ke True.

Get-ScheduledJob -Name ProcessJob | Get-ScheduledJobOption |
 Set-ScheduledJobOption -WakeToRun

Cara mendapatkan instans pekerjaan terjadwal

Saat pekerjaan terjadwal dimulai, PowerShell membuat instans pekerjaan yang mirip dengan pekerjaan latar belakang PowerShell standar. Anda dapat menggunakan cmdlet pekerjaan, seperti Get-Job, Stop-Job dan Receive-Job untuk mengelola instans pekerjaan.

Catatan

Untuk menggunakan cmdlet pekerjaan pada instans pekerjaan terjadwal, modul PSScheduledJob harus diimpor ke dalam sesi. Untuk mengimpor modul PSScheduledJob , ketik Import-Module PSScheduledJob atau gunakan cmdlet pekerjaan terjadwal apa pun, seperti Get-ScheduledJob.

Untuk mendapatkan semua instans pekerjaan terjadwal PowerShell, dan semua pekerjaan standar aktif, gunakan Get-Job cmdlet . Import-Module Cmdlet mengimpor modul PSScheduledJob dan Get-Job mendapatkan pekerjaan di komputer lokal.

Import-Module PSScheduledJob
Get-Job

Get-Job mendapatkan instans ProcessJob di komputer lokal.

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

Tampilan default tidak menampilkan waktu mulai, yang biasanya membedakan instans dari pekerjaan terjadwal yang sama.

Get-Job Cmdlet mengirim objek ke bawah alur. Format-Table Cmdlet menampilkan properti Nama, ID, dan BeginTime dari pekerjaan terjadwal.

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

Mendapatkan hasil pekerjaan terjadwal

Untuk mendapatkan hasil instans pekerjaan terjadwal, gunakan Receive-Job cmdlet .

Catatan

Untuk menggunakan cmdlet Pekerjaan pada instans pekerjaan terjadwal, modul PSScheduledJob harus diimpor ke dalam sesi. Untuk mengimpor modul PSScheduledJob , ketik Import-Module PSScheduledJob atau gunakan cmdlet pekerjaan terjadwal apa pun, seperti Get-ScheduledJob.

Contoh ini mendapatkan hasil instans terbaru dari pekerjaan terjadwal ProcessJob (ID = 51).

Import-Module PSScheduledJob
Receive-Job -ID 51 -Keep

Hasil pekerjaan terjadwal disimpan di disk, sehingga Receive-Job tidak diperlukan. Namun, tanpa parameter Keep , Anda bisa mendapatkan hasil pekerjaan terjadwal hanya sekali di setiap sesi PowerShell. Untuk memulai sesi PowerShell baru, ketik PowerShell atau buka jendela PowerShell baru.

Lihat juga