Stop-Job
Menghentikan pekerjaan latar belakang PowerShell.
Sintaks
SessionIdParameterSet (Default)
Stop-Job
[-Id] <Int32[]>
[-PassThru]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
JobParameterSet
Stop-Job
[-Job] <Job[]>
[-PassThru]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
NameParameterSet
Stop-Job
[-Name] <String[]>
[-PassThru]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
InstanceIdParameterSet
Stop-Job
[-InstanceId] <Guid[]>
[-PassThru]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
StateParameterSet
Stop-Job
[-State] <JobState>
[-PassThru]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
FilterParameterSet
Stop-Job
[-Filter] <Hashtable>
[-PassThru]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Deskripsi
cmdlet Stop-Job 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 cmdlet Start-Job 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 cmdlet Remove-Job.
Mulai Windows PowerShell 3.0, Stop-Job juga menghentikan jenis pekerjaan kustom, seperti WorkflowJobs dan instans ScheduledJobs. Untuk mengaktifkan Stop-Job menghentikan pekerjaan dengan jenis pekerjaan kustom, impor modul yang mendukung jenis pekerjaan kustom ke dalam sesi sebelum Anda menjalankan perintah Stop-Job, baik dengan menggunakan cmdlet Import-Module 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 cmdlet Stop-Job untuk menghentikan pekerjaan yang berjalan di komputer jarak jauh.
Karena pekerjaan dimulai dengan cmdlet Invoke-Command untuk menjalankan perintah Start-Job dari jarak jauh, objek pekerjaan disimpan di komputer jarak jauh. Anda harus menggunakan perintah Invoke-Command lain untuk menjalankan perintah Stop-Job 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 variabel $s. Perintah menggunakan kredensial administrator domain.
Perintah kedua menggunakan cmdlet Invoke-Command untuk menjalankan perintah Start-Job dalam sesi. Perintah dalam pekerjaan mendapatkan semua peristiwa di log peristiwa Sistem. Objek pekerjaan yang dihasilkan disimpan dalam variabel $j.
Perintah ketiga menghentikan pekerjaan. Ini menggunakan cmdlet Invoke-Command untuk menjalankan perintah Stop-Job di PSSession di Server01. Karena objek pekerjaan disimpan di $j, yang merupakan variabel di komputer lokal, perintah menggunakan pengubah cakupan Using: untuk mengidentifikasi $j sebagai variabel lokal. Untuk selengkapnya mengenai pengubah cakupan Using:, 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 pekerjaan latar belakang Job1.
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.
Perintah pertama menggunakan cmdlet Get-Job untuk mendapatkan pekerjaan dalam sesi saat ini. Perintah menggunakan operator alur (|) untuk mengirim pekerjaan ke perintah Format-Table, 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 perintah Stop-Job 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 cmdlet Stop-Job 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 Stop-Job lokal untuk menghentikan pekerjaan.
Perintah pertama menggunakan cmdlet Invoke-Command 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 dikembalikan cmdlet Start-Job.
Perintah menyimpan objek pekerjaan dalam variabel $j.
Perintah kedua menggunakan operator alur untuk mengirim pekerjaan dalam variabel $j ke Stop-Job. Perintah menggunakan parameter PassThru untuk mengarahkan Stop-Job 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 konfirmasi sebelum menjalankan cmdlet.
Properti parameter
| Jenis: | SwitchParameter |
| Nilai default: | False |
| Mendukung wildcard: | False |
| DontShow: | False |
| Alias: | Cf |
Kumpulan parameter
(All)
| Position: | Named |
| Wajib: | False |
| Nilai dari alur: | False |
| Nilai dari alur berdasarkan nama properti: | False |
| Nilai dari argumen yang tersisa: | False |
-Filter
Menentukan tabel hash dari kondisi. 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 cmdlet Start-Job.
Untuk informasi tentang dukungan untuk parameter ini, lihat topik bantuan untuk jenis pekerjaan.
Parameter ini diperkenalkan di Windows PowerShell 3.0.
Properti parameter
| Jenis: | Hashtable |
| Nilai default: | None |
| Mendukung wildcard: | False |
| DontShow: | False |
Kumpulan parameter
FilterParameterSet
| Position: | 0 |
| Wajib: | True |
| Nilai dari alur: | False |
| Nilai dari alur berdasarkan nama properti: | True |
| Nilai dari argumen yang tersisa: | 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.
Properti parameter
| Jenis: | Int32[] |
| Nilai default: | All jobs |
| Mendukung wildcard: | False |
| DontShow: | False |
Kumpulan parameter
SessionIdParameterSet
| Position: | 0 |
| Wajib: | True |
| Nilai dari alur: | False |
| Nilai dari alur berdasarkan nama properti: | True |
| Nilai dari argumen yang tersisa: | False |
-InstanceId
Menentukan ID instans pekerjaan yang dihentikan cmdlet ini. Defaultnya adalah semua pekerjaan.
ID instans adalah GUID yang secara unik mengidentifikasi tugas pada komputer. Untuk menemukan ID instance dari sebuah pekerjaan, gunakan Get-Job.
Properti parameter
| Jenis: | Guid[] |
| Nilai default: | All jobs |
| Mendukung wildcard: | False |
| DontShow: | False |
Kumpulan parameter
InstanceIdParameterSet
| Position: | 0 |
| Wajib: | True |
| Nilai dari alur: | False |
| Nilai dari alur berdasarkan nama properti: | True |
| Nilai dari argumen yang tersisa: | False |
-Job
Menentukan pekerjaan yang dihentikan cmdlet ini. Masukkan variabel yang berisi daftar pekerjaan atau perintah yang mengambil pekerjaan tersebut. Anda juga dapat menggunakan operator alur untuk mengirimkan pekerjaan ke cmdlet Stop-Job. Secara default, Stop-Job menghapus semua pekerjaan yang dimulai dalam sesi saat ini.
Properti parameter
| Jenis: | Job[] |
| Nilai default: | All jobs |
| Mendukung wildcard: | False |
| DontShow: | False |
Kumpulan parameter
JobParameterSet
| Position: | 0 |
| Wajib: | True |
| Nilai dari alur: | True |
| Nilai dari alur berdasarkan nama properti: | True |
| Nilai dari argumen yang tersisa: | 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.
Properti parameter
| Jenis: | String[] |
| Nilai default: | All jobs |
| Mendukung wildcard: | True |
| DontShow: | False |
Kumpulan parameter
NameParameterSet
| Position: | 0 |
| Wajib: | True |
| Nilai dari alur: | False |
| Nilai dari alur berdasarkan nama properti: | True |
| Nilai dari argumen yang tersisa: | False |
-PassThru
Mengembalikan objek yang mewakili item dengan mana Anda bekerja. Secara default, cmdlet ini tidak menghasilkan output apa pun.
Properti parameter
| Jenis: | SwitchParameter |
| Nilai default: | False |
| Mendukung wildcard: | False |
| DontShow: | False |
Kumpulan parameter
(All)
| Position: | Named |
| Wajib: | False |
| Nilai dari alur: | False |
| Nilai dari alur berdasarkan nama properti: | False |
| Nilai dari argumen yang tersisa: | False |
-State
Menentukan status pekerjaan. Cmdlet ini hanya menghentikan pekerjaan dalam status yang ditentukan. Nilai yang dapat diterima untuk parameter ini adalah:
NotStartedRunningCompletedFailedStoppedBlockedSuspendedDisconnectedSuspendingStopping
Untuk informasi selengkapnya tentang status tugas, lihat Enumerasi JobState.
Properti parameter
| Jenis: | JobState |
| Nilai default: | All jobs |
| Nilai yang diterima: | NotStarted, Running, Completed, Failed, Stopped, Blocked, Suspended, Disconnected, Suspending, Stopping, AtBreakpoint |
| Mendukung wildcard: | False |
| DontShow: | False |
Kumpulan parameter
StateParameterSet
| Position: | 0 |
| Wajib: | True |
| Nilai dari alur: | False |
| Nilai dari alur berdasarkan nama properti: | True |
| Nilai dari argumen yang tersisa: | False |
-WhatIf
Menunjukkan apa yang akan terjadi ketika cmdlet dijalankan. Cmdlet tidak dijalankan.
Properti parameter
| Jenis: | SwitchParameter |
| Nilai default: | False |
| Mendukung wildcard: | False |
| DontShow: | False |
| Alias: | wi |
Kumpulan parameter
(All)
| Position: | Named |
| Wajib: | False |
| Nilai dari alur: | False |
| Nilai dari alur berdasarkan nama properti: | False |
| Nilai dari argumen yang tersisa: | False |
CommonParameters
Cmdlet ini mendukung parameter umum: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction, dan -WarningVariable. Untuk informasi selengkapnya, lihat about_CommonParameters.
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