Stop-Job
Menghentikan pekerjaan latar belakang PowerShell.
Sintaks
Stop-Job
[-PassThru]
[-Id] <Int32[]>
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Stop-Job
[-Job] <Job[]>
[-PassThru]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Stop-Job
[-PassThru]
[-Name] <String[]>
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Stop-Job
[-PassThru]
[-InstanceId] <Guid[]>
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Stop-Job
[-PassThru]
[-State] <JobState>
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Stop-Job
[-PassThru]
[-Filter] <Hashtable>
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Deskripsi
Stop-Job
Cmdlet menghentikan pekerjaan latar belakang PowerShell yang sedang berlangsung. Anda dapat menggunakan cmdlet ini untuk menghentikan semua pekerjaan atau menghentikan pekerjaan yang dipilih berdasarkan nama, ID, ID instans, atau statusnya, atau dengan meneruskan objek pekerjaan ke Stop-Job
.
Anda dapat menggunakan Stop-Job
untuk menghentikan pekerjaan latar belakang, seperti yang dimulai dengan menggunakan Start-Job
cmdlet atau parameter AsJob dari cmdlet apa pun. Saat Anda menghentikan pekerjaan latar belakang, PowerShell menyelesaikan semua tugas yang tertunda dalam antrean pekerjaan tersebut lalu mengakhiri pekerjaan. Tidak ada tugas baru yang ditambahkan ke antrean setelah perintah ini dikirimkan.
Cmdlet ini tidak menghapus pekerjaan latar belakang. Untuk menghapus pekerjaan, gunakan Remove-Job
cmdlet.
Mulai dari Windows PowerShell 3.0, Stop-Job
juga menghentikan jenis pekerjaan kustom, seperti WorkflowJobs dan instans ScheduledJobs. Untuk mengaktifkan Stop-Job
untuk menghentikan pekerjaan dengan jenis pekerjaan kustom, impor modul yang mendukung jenis pekerjaan kustom ke dalam sesi sebelum Anda menjalankan Stop-Job
perintah, baik dengan menggunakan Import-Module
cmdlet atau dengan menggunakan atau mendapatkan cmdlet dalam modul. Untuk informasi tentang jenis pekerjaan kustom tertentu, lihat dokumentasi fitur jenis pekerjaan kustom.
Contoh
Contoh 1: Menghentikan pekerjaan di komputer jarak jauh dengan Invoke-Command
$s = New-PSSession -ComputerName Server01 -Credential Domain01\Admin02
$j = Invoke-Command -Session $s -ScriptBlock {Start-Job -ScriptBlock {Get-EventLog -LogName System}}
Invoke-Command -Session $s -ScriptBlock { Stop-job -Job $Using:j }
Contoh ini menunjukkan cara menggunakan Stop-Job
cmdlet untuk menghentikan pekerjaan yang berjalan di komputer jarak jauh.
Karena pekerjaan dimulai dengan Invoke-Command
cmdlet untuk menjalankan Start-Job
perintah dari jarak jauh, objek pekerjaan disimpan di komputer jarak jauh. Anda harus menggunakan perintah lain Invoke-Command
untuk menjalankan Stop-Job
perintah dari jarak jauh. Untuk informasi selengkapnya tentang pekerjaan latar belakang jarak jauh, lihat about_Remote_Jobs.
Perintah pertama membuat sesi PowerShell (PSSession) di komputer Server01, lalu menyimpan objek sesi dalam $s
variabel. Perintah menggunakan kredensial administrator domain.
Perintah kedua menggunakan Invoke-Command
cmdlet untuk menjalankan Start-Job
perintah dalam sesi. Perintah dalam pekerjaan mendapatkan semua peristiwa di log peristiwa Sistem. Objek pekerjaan yang dihasilkan disimpan dalam $j
variabel .
Perintah ketiga menghentikan pekerjaan. Ini menggunakan Invoke-Command
cmdlet untuk menjalankan Stop-Job
perintah di PSSession di Server01. Karena objek pekerjaan disimpan di $j
, yang merupakan variabel di komputer lokal, perintah menggunakan pengubah lingkup Menggunakan untuk mengidentifikasi $j
sebagai variabel lokal. Untuk informasi selengkapnya tentang Pengubah menggunakan lingkup, lihat about_Remote_Variables.
Setelah perintah selesai, pekerjaan dihentikan dan PSSession di $s
tersedia untuk digunakan.
Contoh 2: Menghentikan pekerjaan latar belakang
Stop-Job -Name "Job1"
Perintah ini menghentikan Job1
pekerjaan latar belakang.
Contoh 3: Menghentikan beberapa pekerjaan latar belakang
Stop-Job -Id 1, 3, 4
Perintah ini menghentikan tiga pekerjaan. Ini mengidentifikasi mereka dengan ID mereka.
Contoh 4: Menghentikan semua pekerjaan latar belakang
Get-Job | Stop-Job
Perintah ini menghentikan semua pekerjaan latar belakang dalam sesi saat ini.
Contoh 5: Hentikan semua pekerjaan latar belakang yang diblokir
Stop-Job -State Blocked
Perintah ini menghentikan semua pekerjaan yang diblokir.
Contoh 6: Menghentikan pekerjaan berdasarkan ID instans
Get-Job | Format-Table ID, Name, Command, @{Label="State";Expression={$_.JobStateInfo.State}},
InstanceID -Auto
Id Name Command State InstanceId
-- ---- ------- ----- ----------
1 Job1 start-service schedule Running 05abb67a-2932-4bd5-b331-c0254b8d9146
3 Job3 start-service schedule Running c03cbd45-19f3-4558-ba94-ebe41b68ad03
5 Job5 get-service s* Blocked e3bbfed1-9c53-401a-a2c3-a8db34336adf
Stop-Job -InstanceId e3bbfed1-9c53-401a-a2c3-a8db34336adf
Perintah ini menunjukkan cara menghentikan pekerjaan berdasarkan InstanceID-nya.
Perintah pertama menggunakan Get-Job
cmdlet untuk mendapatkan pekerjaan dalam sesi saat ini. Perintah menggunakan operator alur (|
) untuk mengirim pekerjaan ke Format-Table
perintah, yang menampilkan tabel properti yang ditentukan dari setiap pekerjaan. Tabel ini mencakup InstanceID dari setiap pekerjaan. Ini menggunakan properti terhitung untuk menampilkan status pekerjaan.
Perintah kedua menggunakan Stop-Job
perintah yang memiliki parameter InstanceID untuk menghentikan pekerjaan yang dipilih.
Contoh 7: Menghentikan pekerjaan di komputer jarak jauh
$j = Invoke-Command -ComputerName Server01 -ScriptBlock {Get-EventLog -LogName System} -AsJob
$j | Stop-Job -PassThru
Id Name State HasMoreData Location Command
-- ---- ---- ----------- -------- -------
5 Job5 Stopped True user01-tablet Get-EventLog -LogName Sy...
Contoh ini menunjukkan cara menggunakan Stop-Job
cmdlet untuk menghentikan pekerjaan yang berjalan di komputer jarak jauh.
Karena pekerjaan dimulai dengan parameter AsJob cmdlet Invoke-Command
, objek Job terletak di komputer lokal, meskipun pekerjaan berjalan di komputer jarak jauh. Oleh karena itu, Anda dapat menggunakan perintah lokal Stop-Job
untuk menghentikan pekerjaan.
Perintah pertama menggunakan Invoke-Command
cmdlet untuk memulai pekerjaan latar belakang di komputer Server01. Perintah menggunakan parameter AsJob untuk menjalankan perintah jarak jauh sebagai pekerjaan latar belakang.
Perintah ini mengembalikan objek pekerjaan, yang merupakan objek pekerjaan yang sama dengan yang Start-Job
dikembalikan cmdlet.
Perintah menyimpan objek pekerjaan dalam $j
variabel.
Perintah kedua menggunakan operator alur untuk mengirim pekerjaan dalam variabel ke $j
Stop-Job
. Perintah menggunakan parameter PassThru untuk mengarahkan Stop-Job
untuk mengembalikan objek pekerjaan. Tampilan objek pekerjaan mengonfirmasi bahwa status pekerjaan Dihentikan.
Untuk informasi selengkapnya tentang pekerjaan latar belakang jarak jauh, lihat about_Remote_Jobs.
Parameter
-Confirm
Meminta Anda mengonfirmasi sebelum menjalankan cmdlet.
Jenis: | SwitchParameter |
Alias: | cf |
Position: | Named |
Nilai default: | False |
Diperlukan: | False |
Terima input alur: | False |
Terima karakter wildcard: | False |
-Filter
Menentukan tabel kondisi hash. Cmdlet ini menghentikan pekerjaan yang memenuhi setiap kondisi. Masukkan tabel hash di mana kunci adalah properti pekerjaan dan nilainya adalah nilai properti pekerjaan.
Parameter ini hanya berfungsi pada jenis pekerjaan kustom, seperti WorkflowJobs dan ScheduledJobs. Ini tidak berfungsi pada pekerjaan latar belakang standar, seperti yang dibuat dengan menggunakan Start-Job
cmdlet.
Untuk informasi tentang dukungan untuk parameter ini, lihat topik bantuan untuk jenis pekerjaan.
Parameter ini diperkenalkan di Windows PowerShell 3.0.
Jenis: | Hashtable |
Position: | 0 |
Nilai default: | None |
Diperlukan: | True |
Terima input alur: | True |
Terima karakter wildcard: | False |
-Id
Menentukan ID pekerjaan yang dihentikan cmdlet ini. Defaultnya adalah semua pekerjaan dalam sesi saat ini.
ID adalah bilangan bulat yang secara unik mengidentifikasi pekerjaan dalam sesi saat ini. Lebih mudah diingat dan ditik daripada ID instans, tetapi hanya unik dalam sesi saat ini. Anda dapat mengetik satu atau beberapa ID, dipisahkan oleh koma. Untuk menemukan ID pekerjaan, ketik Get-Job
.
Jenis: | Int32[] |
Position: | 0 |
Nilai default: | All jobs |
Diperlukan: | True |
Terima input alur: | True |
Terima karakter wildcard: | False |
-InstanceId
Menentukan ID instans pekerjaan yang dihentikan cmdlet ini. Defaultnya adalah semua pekerjaan.
ID instans adalah GUID yang secara unik mengidentifikasi pekerjaan di komputer. Untuk menemukan ID instans pekerjaan, gunakan Get-Job
.
Jenis: | Guid[] |
Position: | 0 |
Nilai default: | All jobs |
Diperlukan: | True |
Terima input alur: | True |
Terima karakter wildcard: | False |
-Job
Menentukan pekerjaan yang dihentikan cmdlet ini. Masukkan variabel yang berisi pekerjaan atau perintah yang mendapatkan pekerjaan. Anda juga dapat menggunakan operator alur untuk mengirimkan pekerjaan ke Stop-Job
cmdlet. Secara default, Stop-Job
menghapus semua pekerjaan yang dimulai dalam sesi saat ini.
Jenis: | Job[] |
Position: | 0 |
Nilai default: | All jobs |
Diperlukan: | True |
Terima input alur: | True |
Terima karakter wildcard: | False |
-Name
Menentukan nama pekerjaan yang mudah dihentikan cmdlet ini. Masukkan nama pekerjaan dalam daftar yang dipisahkan koma atau gunakan karakter kartubebas (*
) untuk memasukkan pola nama pekerjaan. Secara default, Stop-Job
menghentikan semua pekerjaan yang dibuat dalam sesi saat ini.
Karena nama yang mudah diingat tidak dijamin unik, gunakan parameter WhatIf dan Konfirmasi saat menghentikan pekerjaan berdasarkan nama.
Jenis: | String[] |
Position: | 0 |
Nilai default: | All jobs |
Diperlukan: | True |
Terima input alur: | True |
Terima karakter wildcard: | True |
-PassThru
Mengembalikan objek yang mewakili item tempat Anda bekerja. Secara default, cmdlet ini tidak menghasilkan output apa pun.
Jenis: | SwitchParameter |
Position: | Named |
Nilai default: | False |
Diperlukan: | False |
Terima input alur: | False |
Terima karakter wildcard: | False |
-State
Menentukan status pekerjaan. Cmdlet ini hanya menghentikan pekerjaan dalam status yang ditentukan. Nilai yang dapat diterima untuk parameter ini adalah:
NotStarted
Running
Completed
Failed
Stopped
Blocked
Suspended
Disconnected
Suspending
Stopping
Untuk informasi selengkapnya tentang status pekerjaan, lihat Enumerasi JobState.
Jenis: | JobState |
Nilai yang diterima: | NotStarted, Running, Completed, Failed, Stopped, Blocked, Suspended, Disconnected, Suspending, Stopping, AtBreakpoint |
Position: | 0 |
Nilai default: | All jobs |
Diperlukan: | True |
Terima input alur: | True |
Terima karakter wildcard: | False |
-WhatIf
Menunjukkan apa yang akan terjadi jika cmdlet berjalan. Cmdlet tidak dijalankan.
Jenis: | SwitchParameter |
Alias: | wi |
Position: | Named |
Nilai default: | False |
Diperlukan: | False |
Terima input alur: | False |
Terima karakter wildcard: | False |
Input
System.Management.Automation.RemotingJob
Anda dapat menyalurkan objek pekerjaan ke cmdlet ini.
Output
None
Secara default, cmdlet ini tidak mengembalikan output.
System.Management.Automation.PSRemotingJob
Saat Anda menggunakan parameter PassThru , cmdlet ini mengembalikan objek pekerjaan.
Catatan
PowerShell menyertakan alias berikut untuk Stop-Job
:
- Semua platform:
spjb