about_Scheduled_Jobs_Advanced
Deskripsi singkat
Menjelaskan topik pekerjaan terjadwal tingkat lanjut, termasuk struktur file yang mendasar pekerjaan terjadwal.
Deskripsi panjang
Untuk informasi selengkapnya tentang cmdlet yang terkandung dalam modul PSScheduledJob , lihat PSScheduledJob.
Direktori dan file pekerjaan terjadwal
Pekerjaan terjadwal PowerShell adalah pekerjaan PowerShell dan tugas Task Scheduler. Setiap pekerjaan terjadwal terdaftar di Task Scheduler dan disimpan pada disk dalam format XML Serialisasi Microsoft .NET Framework.
Saat Anda membuat pekerjaan terjadwal, PowerShell membuat direktori untuk pekerjaan terjadwal di $HOME\AppData\Local\Microsoft\Windows\PowerShell\ScheduledJobs
direktori di komputer lokal. Nama direktori sama dengan nama pekerjaan.
Berikut ini adalah sampel direktori ScheduledJobs .
Get-ChildItem $HOME\AppData\Local\Microsoft\Windows\PowerShell\ScheduledJobs
Directory: C:\Users\User01\AppData\Local
\Microsoft\Windows\PowerShell\ScheduledJobs
Mode LastWriteTime Length Name
---- ------------- ------ ----
d---- 9/29/2011 10:03 AM ArchiveProjects
d---- 9/30/2011 1:18 PM Inventory
d---- 10/20/2011 9:15 AM Backup-Scripts
d---- 11/7/2011 10:40 AM ProcessJob
d---- 11/2/2011 10:25 AM SecureJob
d---- 9/27/2011 1:29 PM Test-HelpFiles
d---- 9/26/2011 4:22 PM DeployPackage
Setiap pekerjaan terjadwal memiliki direktorinya sendiri. Direktori berisi file XML pekerjaan terjadwal dan subdirektori Output .
$Path = "$HOME\AppData\Local\Microsoft\Windows\PowerShell"
$Path += "\ScheduledJobs\ProcessJob"
Get-ChildItem $Path
Directory: C:\Users\User01\AppData\Local\Microsoft\Windows\PowerShell
\ScheduledJobs\ProcessJob
Mode LastWriteTime Length Name
---- ------------- ------ ----
d---- 11/1/2011 3:00 PM Output
-a--- 11/1/2011 3:43 PM 7281 ScheduledJobDefinition.xml
Direktori Output untuk pekerjaan terjadwal berisi riwayat eksekusinya. Setiap kali pemicu pekerjaan memulai pekerjaan terjadwal, PowerShell membuat direktori bernama tanda waktu di direktori output. Direktori tanda waktu berisi hasil pekerjaan dalam file Results.xml dan status pekerjaan dalam file Status.xml .
Perintah berikut menunjukkan direktori riwayat eksekusi untuk pekerjaan terjadwal ProcessJob .
$Path = "$HOME\AppData\Local\Microsoft"
$Path += "\Windows\PowerShell\ScheduledJobs\ProcessJob\Output"
Get-ChildItem $Path
Directory: C:\Users\User01\AppData\Local\Microsoft
\Windows\PowerShell\ScheduledJobs\ProcessJob\Output
Mode LastWriteTime Length Name
---- ------------- ------ ----
d---- 11/2/2011 3:00 AM 20111102-030002-260
d---- 11/3/2011 3:00 AM 20111103-030002-277
d---- 11/4/2011 3:00 AM 20111104-030002-209
d---- 11/5/2011 3:00 AM 20111105-030002-251
d---- 11/6/2011 3:00 AM 20111106-030002-174
d---- 11/7/2011 12:00 AM 20111107-000001-914
d---- 11/7/2011 3:00 AM 20111107-030002-376
$Path = "$HOME\AppData\Local\Microsoft\Windows\PowerShell\"
$Path += "ScheduledJobs\ProcessJob\Output\20111102-030002-260"
Get-ChildItem $Path
Directory: C:\Users\User01\AppData\Local\Microsoft\Windows\PowerShell
\ScheduledJobs\ProcessJob\Output\20111102-030002-260
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a--- 11/2/2011 3:00 AM 581106 Results.xml
-a--- 11/2/2011 3:00 AM 9451 Status.xml
Anda dapat membuka dan memeriksa file ScheduledJobDefinition.xml, Results.xml, dan Status.xml atau menggunakan Select-XML
cmdlet untuk mengurai file.
Peringatan
Jangan edit file XML. Jika ada file XML yang berisi XML yang tidak valid, PowerShell akan menghapus pekerjaan terjadwal dan riwayat eksekusinya, termasuk hasil pekerjaan.
Segera mulai pekerjaan terjadwal
Anda dapat segera memulai pekerjaan terjadwal dengan salah satu dari dua cara:
- Jalankan
Start-Job
cmdlet untuk memulai pekerjaan terjadwal apa pun. - Tambahkan parameter RunNow ke perintah Anda
Register-ScheduledJob
untuk memulai pekerjaan segera setelah perintah dijalankan.
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, pekerjaan tersebut tidak tunduk pada opsi pekerjaan atau terpengaruh oleh pemicu pekerjaan. Output pekerjaan tidak disimpan di direktori Output direktori pekerjaan terjadwal.
Perintah berikut menggunakan parameter DefinitionName cmdlet Start-Job
untuk memulai pekerjaan terjadwal ProcessJob.
Start-Job -DefinitionName ProcessJob
Untuk mengelola pekerjaan dan mendapatkan hasil pekerjaan, gunakan cmdlet pekerjaan. Untuk informasi selengkapnya tentang cmdlet pekerjaan, lihat about_Jobs.
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
.
Mengganti nama pekerjaan terjadwal
Untuk mengganti nama pekerjaan terjadwal, gunakan parameter Set-ScheduledJob
Nama cmdlet. Saat Anda mengganti nama pekerjaan terjadwal, PowerShell mengubah nama pekerjaan terjadwal dan direktori pekerjaan terjadwal. Namun, itu tidak mengubah nama instans pekerjaan terjadwal yang telah berjalan.
Mendapatkan waktu mulai dan berakhir
Untuk mendapatkan tanggal dan waktu instans pekerjaan dimulai dan berakhir, gunakan properti PSBeginTime dan PSEndTime dari objek ScheduledJob yang Get-Job
mengembalikan untuk pekerjaan terjadwal.
Contoh berikut menggunakan parameter Format-Table
Properti cmdlet untuk menampilkan properti PSBeginTime dan PSEndTime dari setiap instans pekerjaan dalam tabel. Properti terhitung bernama Label menampilkan waktu yang berlalu dari setiap instans pekerjaan.
Get-job -Name UpdateHelpJob |
Format-Table -Property ID, PSBeginTime, PSEndTime,
@{Label="Elapsed Time";Expression={$.PsEndTime - $.PSBeginTime}}
Id PSBeginTime PSEndTime Elapsed Time
-- ----------- --------- ------------
2 11/3/2011 3:00:01 AM 11/3/2011 3:00:39 AM 00:00:38.0053854
3 11/4/2011 3:00:02 AM 11/4/2011 3:01:01 AM 00:00:59.1188475
4 11/5/2011 3:00:02 AM 11/5/2011 3:00:50 AM 00:00:48.3692034
5 11/6/2011 3:00:01 AM 11/6/2011 3:00:54 AM 00:00:52.8013036
6 11/7/2011 3:00:01 AM 11/7/2011 3:00:38 AM 00:00:37.1930350
7 11/8/2011 3:00:01 AM 11/8/2011 3:00:57 AM 00:00:56.2570556
8 11/9/2011 3:00:03 AM 11/9/2011 3:00:55 AM 00:00:51.8142222
9 11/10/2011 3:00:02 AM 11/10/2011 3:00:42 AM 00:00:40.7195954
Mengelola riwayat eksekusi
Anda dapat menentukan jumlah hasil instans pekerjaan yang disimpan untuk setiap pekerjaan terjadwal dan menghapus riwayat eksekusi dan menyimpan hasil pekerjaan dari pekerjaan terjadwal apa pun.
Properti ExecutionHistoryLength dari pekerjaan terjadwal menentukan berapa banyak hasil instans pekerjaan yang disimpan untuk pekerjaan terjadwal. Ketika jumlah hasil yang disimpan melebihi nilai properti ExecutionHistoryLength , PowerShell menghapus hasil instans terlama untuk memberikan ruang bagi hasil instans terbaru.
Secara default, PowerShell menyimpan riwayat eksekusi dan hasil 32 instans dari setiap pekerjaan terjadwal. Untuk mengubah nilai tersebut , gunakan parameter MaxResultCount dari Register-ScheduledJob
cmdlet atau Set-ScheduledJob
.
Untuk menghapus riwayat eksekusi dan semua hasil untuk pekerjaan terjadwal, gunakan parameter ClearExecutionHistory cmdlet Set-ScheduledJob
. Menghapus riwayat eksekusi ini tidak mencegah PowerShell menyimpan hasil instans baru dari pekerjaan terjadwal.
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. Perintah menggunakan parameter MaxResultCount dengan nilai 12 untuk hanya menyimpan 12 hasil instans pekerjaan terbaru dari pekerjaan terjadwal.
$JobParms = @{
Name = "ProcessJob"
ScriptBlock = {Get-Process}
MaxResultCount = "12"
}
Register-ScheduledJob @JobParms
Perintah berikut menggunakan parameter MaxResultCount dari Set-ScheduledJob
cmdlet untuk meningkatkan jumlah hasil instans yang disimpan menjadi 15.
Get-ScheduledJob ProcessJob | Set-ScheduledJob -MaxResultCount 15
Perintah berikut menghapus riwayat eksekusi dan hasil pekerjaan terjadwal ProcessJob yang disimpan saat ini.
Get-ScheduledJob ProcessJob | Set-ScheduledJob -ClearExecutionHistory
Perintah berikut mendapatkan nilai nama dan properti ExecutionHistoryLength dari semua pekerjaan terjadwal di komputer dan menampilkannya dalam tabel.
Get-ScheduledJob |
Format-Table -Property Name, ExecutionHistoryLength -AutoSize
Lihat juga
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk