Bagikan melalui


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:

  • NotStarted
  • Running
  • Completed
  • Failed
  • Stopped
  • Blocked
  • Suspended
  • Disconnected
  • Suspending
  • Stopping

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