Set-ScheduledJob

Mengubah pekerjaan terjadwal.

Sintaks

Set-ScheduledJob
   [-Name <String>]
   [-ScriptBlock <ScriptBlock>]
   [-Trigger <ScheduledJobTrigger[]>]
   [-InitializationScript <ScriptBlock>]
   [-RunAs32]
   [-Credential <PSCredential>]
   [-Authentication <AuthenticationMechanism>]
   [-ScheduledJobOption <ScheduledJobOptions>]
   [-InputObject] <ScheduledJobDefinition>
   [-MaxResultCount <Int32>]
   [-PassThru]
   [-ArgumentList <Object[]>]
   [-RunNow]
   [-RunEvery <TimeSpan>]
   [<CommonParameters>]
Set-ScheduledJob
   [-Name <String>]
   [-FilePath <String>]
   [-Trigger <ScheduledJobTrigger[]>]
   [-InitializationScript <ScriptBlock>]
   [-RunAs32]
   [-Credential <PSCredential>]
   [-Authentication <AuthenticationMechanism>]
   [-ScheduledJobOption <ScheduledJobOptions>]
   [-InputObject] <ScheduledJobDefinition>
   [-MaxResultCount <Int32>]
   [-PassThru]
   [-ArgumentList <Object[]>]
   [-RunNow]
   [-RunEvery <TimeSpan>]
   [<CommonParameters>]
Set-ScheduledJob
   [-InputObject] <ScheduledJobDefinition>
   [-ClearExecutionHistory]
   [-PassThru]
   [<CommonParameters>]

Deskripsi

Set-ScheduledJob Cmdlet mengubah properti pekerjaan terjadwal, seperti perintah yang dijalankan pekerjaan atau kredensial yang diperlukan untuk menjalankan pekerjaan. Anda juga dapat menggunakannya untuk menghapus riwayat eksekusi pekerjaan terjadwal.

Untuk menggunakan cmdlet ini, mulailah dengan menggunakan Get-ScheduledJob cmdlet untuk mendapatkan pekerjaan terjadwal. Kemudian, pipa pekerjaan terjadwal ke Set-ScheduledJob atau simpan pekerjaan dalam variabel dan gunakan parameter InputObject untuk mengidentifikasi pekerjaan. Gunakan parameter Set-ScheduledJob yang tersisa untuk mengubah properti pekerjaan atau menghapus riwayat eksekusi.

Meskipun Anda dapat menggunakan Set-ScheduledJob untuk mengubah pemicu dan opsi pekerjaan terjadwal, Add-JobTriggercmdlet , , Set-JobTriggerdan Set-ScheduledJobOption menyediakan cara yang jauh lebih mudah untuk menyelesaikan tugas tersebut. Untuk membuat pekerjaan terjadwal baru, gunakan Register-ScheduledJob cmdlet.

Parameter Set-ScheduledJob Pemicu menambahkan satu atau beberapa pemicu pekerjaan yang memulai pekerjaan. Parameter Pemicu bersifat opsional, sehingga Anda dapat menambahkan pemicu saat membuat pekerjaan terjadwal, menambahkan pemicu pekerjaan nanti, menambahkan parameter RunNow untuk segera memulai pekerjaan, menggunakan Start-Job cmdlet untuk segera memulai pekerjaan kapan saja, atau menyimpan pekerjaan terjadwal yang tidak diambil sebagai templat untuk pekerjaan lain.

Set-ScheduledJob adalah salah satu kumpulan cmdlet penjadwalan pekerjaan dalam modul PSScheduledJob yang disertakan dalam Windows PowerShell.

Untuk informasi selengkapnya tentang Pekerjaan Terjadwal, lihat topik Tentang dalam modul PSScheduledJob. Impor modul PSScheduledJob lalu ketik: Get-Help about_Scheduled* atau lihat about_Scheduled_Jobs.

Cmdlet ini diperkenalkan di Windows PowerShell 3.0.

Contoh

Contoh 1: Mengubah skrip yang dijalankan pekerjaan

Contoh ini menunjukkan cara mengubah skrip yang dijalankan dalam pekerjaan terjadwal.

Get-ScheduledJob -Name "Inventory"

Id         Name            Triggers        Command                                  Enabled
--         ----            --------        -------                                  -------
1          Inventory       {1}             C:\Scripts\Get-Inventory.ps1             True

Get-ScheduledJob -Name "Inventory" | Set-ScheduledJob -FilePath "C:\Scripts\Get-FullInventory.ps1" -Passthru

Id         Name            Triggers        Command                                  Enabled
--         ----            --------        -------                                  -------
1          Inventory       {1}             C:\Scripts\Get-FullInventory.ps1         True

Perintah pertama menggunakan Get-ScheduledJob cmdlet untuk mendapatkan pekerjaan terjadwal Inventori. Output menunjukkan bahwa pekerjaan menjalankan skrip Get-Inventory.ps1.

Perintah kedua menggunakan Get-ScheduledJob cmdlet untuk mendapatkan pekerjaan terjadwal Inventori. Operator alur (|) mengirimkan pekerjaan terjadwal ke Set-ScheduledJob cmdlet. Set-ScheduledJob Cmdlet menggunakan parameter Skrip untuk menentukan skrip baru, Get-FullInventory.ps1. Perintah menggunakan parameter Passthru untuk mengembalikan pekerjaan terjadwal setelah perubahan.

Perintah ini tidak diperlukan; hanya disertakan untuk menunjukkan efek perubahan skrip.

Contoh 2: Menghapus riwayat eksekusi pekerjaan terjadwal

Contoh ini menghapus riwayat eksekusi saat ini dan hasil pekerjaan yang disimpan untuk pekerjaan terjadwal.

Get-ScheduledJob BackupArchive | Set-ScheduledJob -ClearExecutionHistory

Perintah menggunakan Get-ScheduledJob cmdlet untuk mendapatkan pekerjaan terjadwal BackupArchive. Operator alur (|) mengirim pekerjaan ke Set-ScheduledJob cmdlet untuk mengubahnya. Set-ScheduledJob Cmdlet menggunakan parameter ClearExecutionHistory untuk menghapus riwayat eksekusi dan hasil yang disimpan.

Untuk informasi selengkapnya tentang riwayat eksekusi dan hasil pekerjaan terjadwal yang disimpan dari pekerjaan terjadwal, lihat about_Scheduled_Jobs.

Contoh 3: Mengubah pekerjaan terjadwal di komputer jarak jauh

Perintah ini mengubah skrip inisialisasi di semua pekerjaan terjadwal pada komputer jarak jauh.

Invoke-Command -Computer "Server01, Server02" -ScriptBlock {Get-ScheduledJob |
    Set-ScheduledJob -InitializationScript \\SrvA\Scripts\SetForRun.ps1}

Perintah menggunakan Invoke-Command cmdlet untuk menjalankan perintah pada komputer Server01 dan Server02.

Perintah jarak jauh dimulai dengan Get-ScheduledJob perintah yang mendapatkan semua pekerjaan terjadwal di komputer. Pekerjaan terjadwal disalurkan ke Set-ScheduledJob cmdlet, yang mengubah skrip inisialisasi menjadi SetForRun.ps1.

Parameter

-ArgumentList

Menentukan nilai untuk parameter skrip yang ditentukan oleh parameter FilePath atau untuk perintah yang ditentukan oleh parameter ScriptBlock .

Type:Object[]
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Authentication

Menentukan mekanisme yang digunakan untuk mengautentikasi kredensial pengguna. Nilai yang dapat diterima untuk parameter ini adalah:

  • Default
  • Basic
  • Credssp
  • Digest
  • Kerberos
  • Negotiate
  • NegotiateWithImplicitCredential

Nilai defaultnya adalah Default. Untuk informasi selengkapnya tentang nilai parameter ini, lihat AuthenticationMechanism Enumeration di PowerShell SDK.

Perhatian

Autentikasi Penyedia Dukungan Keamanan Kredensial (CredSSP), di mana kredensial pengguna diteruskan ke komputer jarak jauh untuk diautentikasi, dirancang untuk perintah yang memerlukan autentikasi pada lebih dari satu sumber daya, seperti mengakses berbagi jaringan jarak jauh. Mekanisme ini meningkatkan risiko keamanan operasi jarak jauh. Jika komputer jarak jauh disusupi, kredensial yang diteruskan ke komputer jarak jauh dapat digunakan untuk mengontrol sesi jaringan.

Type:AuthenticationMechanism
Accepted values:Default, Basic, Negotiate, NegotiateWithImplicitCredential, Credssp, Digest, Kerberos
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-ClearExecutionHistory

Menghapus riwayat eksekusi saat ini dan hasil tersimpan dari pekerjaan terjadwal.

Riwayat eksekusi pekerjaan dan hasil pekerjaan disimpan dengan pekerjaan terjadwal di $HOME\AppData\Local\Microsoft\Windows\PowerShell\ScheduledJobs direktori di komputer tempat pekerjaan dibuat. Untuk melihat riwayat eksekusi, gunakan Get-Job cmdlet . Untuk mendapatkan hasil pekerjaan, gunakan Receive-Job cmdlet .

Parameter ini tidak memengaruhi kejadian yang ditulis Task Scheduler ke log peristiwa Windows dan tidak menghentikan Windows PowerShell menyimpan hasil pekerjaan. Untuk mengelola jumlah hasil pekerjaan yang disimpan, gunakan parameter MaxResultCount .

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Credential

Menentukan akun pengguna yang memiliki izin untuk menjalankan pekerjaan terjadwal. Defaultnya adalah pengguna saat ini.

Ketik nama pengguna, seperti User01 atau Domain01\User01, atau masukkan objek PSCredential , seperti dari Get-Credential cmdlet. Jika Anda hanya memasukkan nama pengguna, Anda akan dimintai kata sandi.

Type:PSCredential
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-FilePath

Menentukan skrip yang dijalankan pekerjaan terjadwal. Masukkan jalur ke file .ps1 di komputer lokal. Untuk menentukan nilai default untuk parameter skrip, gunakan parameter ArgumentList . Setiap pekerjaan terjadwal harus memiliki nilai ScriptBlock atau FilePath .

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-InitializationScript

Menentukan jalur yang sepenuhnya memenuhi syarat ke skrip Windows PowerShell (.ps1). Skrip inisialisasi berjalan dalam sesi yang dibuat untuk pekerjaan latar belakang sebelum perintah yang ditentukan oleh parameter ScriptBlock atau skrip yang ditentukan oleh parameter FilePath . Anda dapat menggunakan skrip inisialisasi untuk mengonfigurasi sesi, seperti menambahkan file, fungsi, atau alias, membuat direktori, atau memeriksa prasyarat.

Untuk menentukan skrip yang menjalankan perintah pekerjaan utama, gunakan parameter FilePath .

Jika skrip inisialisasi menghasilkan kesalahan, termasuk kesalahan yang tidak mengakhiri, instans pekerjaan terjadwal saat ini tidak berjalan dan statusnya Gagal.

Type:ScriptBlock
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-InputObject

Menentukan tugas terjadwal yang akan diubah. Masukkan variabel yang berisi objek ScheduledJobDefinition atau ketik perintah atau ekspresi yang mendapatkan objek ScheduledJobDefinition , seperti Get-ScheduledJob perintah. Anda juga dapat menyalurkan objek ScheduledJobDefinition ke Set-ScheduledJob.

Jika Anda menentukan beberapa pekerjaan terjadwal, Set-ScheduledJob buat perubahan yang sama pada semua pekerjaan.

Type:ScheduledJobDefinition
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-MaxResultCount

Menentukan berapa banyak entri hasil pekerjaan yang dipertahankan untuk pekerjaan terjadwal. Nilai defaultnya adalah 32.

Windows PowerShell menyimpan riwayat eksekusi dan hasil setiap instans yang dipicu dari pekerjaan terjadwal pada disk. Nilai parameter ini menentukan jumlah hasil instans pekerjaan yang disimpan untuk pekerjaan terjadwal ini. Ketika jumlah hasil instans pekerjaan melebihi nilai ini, Windows PowerShell menghapus hasil instans pekerjaan terlama untuk memberikan ruang bagi hasil instans pekerjaan terbaru.

Riwayat eksekusi pekerjaan dan hasil pekerjaan disimpan di $HOME\AppData\Local\Microsoft\Windows\PowerShell\ScheduledJobs\<JobName>\Output\<Timestamp> direktori pada komputer tempat pekerjaan dibuat. Untuk melihat riwayat eksekusi, gunakan Get-Job cmdlet . Untuk mendapatkan hasil pekerjaan, gunakan Receive-Job cmdlet .

Parameter MaxResultCount menetapkan nilai properti ExecutionHistoryLength dari pekerjaan terjadwal.

Untuk menghapus riwayat eksekusi dan hasil pekerjaan saat ini, gunakan parameter ClearExecutionHistory .

Type:Int32
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Name

Menentukan nama baru untuk pekerjaan terjadwal dan instans pekerjaan terjadwal. Nama harus unik pada komputer lokal.

Untuk mengidentifikasi pekerjaan terjadwal yang akan diubah, gunakan parameter InputObject atau pipa pekerjaan terjadwal dari Get-ScheduledJob ke Set-ScheduledJob.

Parameter ini tidak mengubah nama instans pekerjaan pada disk. Ini hanya memengaruhi instans pekerjaan yang dimulai setelah perintah ini selesai.

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-PassThru

Mengembalikan objek yang mewakili item tempat Anda bekerja. Secara default, cmdlet ini tidak menghasilkan output apa pun.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-RunAs32

Menjalankan pekerjaan terjadwal dalam proses 32-bit.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-RunEvery

Digunakan untuk menentukan seberapa sering menjalankan pekerjaan. Misalnya, gunakan opsi ini untuk menjalankan pekerjaan setiap 15 menit.

Type:TimeSpan
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-RunNow

Segera memulai pekerjaan, segera setelah Set-ScheduledJob cmdlet dijalankan. Parameter ini menghilangkan kebutuhan untuk memicu Task Scheduler untuk menjalankan skrip Windows PowerShell segera setelah pendaftaran, dan tidak mengharuskan pengguna untuk membuat pemicu yang menentukan tanggal dan waktu mulai.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-ScheduledJobOption

Mengatur opsi untuk pekerjaan terjadwal. Masukkan objek ScheduledJobOptions, seperti objek yang Anda buat dengan menggunakan New-ScheduledJobOption cmdlet, atau nilai tabel hash.

Anda dapat mengatur opsi untuk pekerjaan terjadwal saat mendaftarkan pekerjaan terjadwal atau menggunakan Set-ScheduledJobOption cmdlet atau Set-ScheduledJob untuk mengatur atau mengubah opsi.

Banyak opsi dan nilai defaultnya menentukan apakah dan kapan pekerjaan terjadwal berjalan. Pastikan untuk meninjau opsi ini sebelum menjadwalkan pekerjaan. Untuk deskripsi opsi pekerjaan terjadwal, termasuk nilai default, lihat New-ScheduledJobOption.

Untuk mengirimkan tabel hash, gunakan kunci berikut. Dalam tabel hash berikut, kunci diperlihatkan dengan nilai defaultnya.

@{# Power SettingsStartIfOnBattery=$False;StopIfGoingOnBattery=$True; WakeToRun=$False; # Idle SettingsStartIfNotIdle=$False; IdleDuration="00:10:00"; IdleTimeout="01:00:00"; StopIfGoingOffIdle=$True; RestartOnIdleResume=$False;# Security settingsShowInTaskScheduler=$TrueRunElevated=$False;# MiscRunWithoutNetwork=$False;DoNotAllowDemandStart=$False;MultipleInstancePolicy=IgnoreNew# Can be IgnoreNew, Parallel, Queue, StopExisting}

Type:ScheduledJobOptions
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-ScriptBlock

Menentukan perintah yang dijalankan pekerjaan terjadwal. Sertakan perintah dalam kurung kurawal ({}) untuk membuat blok skrip. Untuk menentukan nilai default untuk parameter perintah, gunakan parameter ArgumentList .

Setiap Register-ScheduledJob perintah harus menggunakan parameter ScriptBlock atau FilePath .

Type:ScriptBlock
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Trigger

Menentukan pemicu untuk pekerjaan terjadwal. Masukkan satu atau beberapa objek ScheduledJobTrigger , seperti objek yang New-JobTrigger dikembalikan cmdlet, atau tabel hash kunci dan nilai pemicu pekerjaan.

Pemicu pekerjaan memulai pekerjaan terjadwal secara otomatis pada satu kali atau berulang terjadwal atau saat peristiwa terjadi.

Pemicu pekerjaan bersifat opsional. Anda dapat menambahkan pemicu saat membuat pekerjaan terjadwal, menggunakan Add-JobTrigger cmdlet atau Set-ScheduledJob untuk menambahkan pemicu nanti, atau menggunakan Start-Job cmdlet untuk segera memulai pekerjaan terjadwal. Anda juga dapat membuat dan memelihara pekerjaan terjadwal yang tidak memiliki pemicu pekerjaan.

Untuk mengirimkan tabel hash, gunakan kunci berikut.

@{Frequency="Once" (or Daily, Weekly, AtStartup, AtLogon);At="3am" (atau string waktu yang valid); DaysOfWeek="Monday", "Wednesday" (atau kombinasi nama hari); Interval=2 (atau interval frekuensi yang valid); RandomDelay="30minutes" (atau string rentang waktu yang valid); User="Domain1\User01" (atau pengguna yang valid; hanya digunakan dengan nilai frekuensi AtLogon)

}

Type:ScheduledJobTrigger[]
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

Input

ScheduledJobDefinition

Anda dapat menyalurkan pekerjaan terjadwal ke cmdlet ini.

Output

None

Secara default, cmdlet ini tidak mengembalikan output.

ScheduledJobDefinition

Saat Anda menggunakan parameter PassThru , cmdlet ini mengembalikan pekerjaan terjadwal yang diubahnya.