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 $jStop-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.

Type:SwitchParameter
Aliases:cf
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters: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.

Type:Hashtable
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters: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.

Type:Int32[]
Position:0
Default value:All jobs
Required:True
Accept pipeline input:True
Accept wildcard characters: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.

Type:Guid[]
Position:0
Default value:All jobs
Required:True
Accept pipeline input:True
Accept wildcard characters: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.

Type:Job[]
Position:0
Default value:All jobs
Required:True
Accept pipeline input:True
Accept wildcard characters: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.

Type:String[]
Position:0
Default value:All jobs
Required:True
Accept pipeline input:True
Accept wildcard characters:True

-PassThru

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

Type:SwitchParameter
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters: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.

Type:JobState
Accepted values:NotStarted, Running, Completed, Failed, Stopped, Blocked, Suspended, Disconnected, Suspending, Stopping, AtBreakpoint
Position:0
Default value:All jobs
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-WhatIf

Menunjukkan apa yang akan terjadi jika cmdlet berjalan. Cmdlet tidak dijalankan.

Type:SwitchParameter
Aliases:wi
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters: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