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-JobTrigger
mendapatkan 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-ScheduledJobOption
mendapatkan 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.