Bagikan melalui


Remove-Job

Menghapus pekerjaan latar belakang PowerShell.

Sintaks

Remove-Job
      [-Force]
      [-Id] <Int32[]>
      [-WhatIf]
      [-Confirm]
      [<CommonParameters>]
Remove-Job
      [-Job] <Job[]>
      [-Force]
      [-WhatIf]
      [-Confirm]
      [<CommonParameters>]
Remove-Job
      [-Force]
      [-Name] <String[]>
      [-WhatIf]
      [-Confirm]
      [<CommonParameters>]
Remove-Job
      [-Force]
      [-InstanceId] <Guid[]>
      [-WhatIf]
      [-Confirm]
      [<CommonParameters>]
Remove-Job
      [-Force]
      [-Filter] <Hashtable>
      [-WhatIf]
      [-Confirm]
      [<CommonParameters>]
Remove-Job
      [-State] <JobState>
      [-WhatIf]
      [-Confirm]
      [<CommonParameters>]
Remove-Job
      [-Command <String[]>]
      [-WhatIf]
      [-Confirm]
      [<CommonParameters>]

Deskripsi

Cmdlet Remove-Job menghapus pekerjaan latar belakang PowerShell yang dimulai oleh cmdlet Start-Job atau oleh cmdlet seperti Invoke-Command yang mendukung parameter AsJob.

Anda dapat menggunakan Remove-Job untuk menghapus semua pekerjaan atau menghapus pekerjaan yang dipilih. Pekerjaan diidentifikasi oleh Nama, id , InstanceId, perintah , atau Status. Objek pekerjaan dapat dikirimkan melalui alur ke Remove-Job. Tanpa parameter atau nilai parameter, Remove-Job tidak berpengaruh.

Karena PowerShell 3.0, Remove-Job dapat menghapus jenis pekerjaan kustom, seperti pekerjaan terjadwal dan pekerjaan alur kerja. Misalnya, Remove-Job menghapus pekerjaan terjadwal, semua instance pekerjaan terjadwal pada disk, dan hasil dari semua instance pekerjaan yang telah dijalankan.

Jika Anda mencoba menghapus tugas yang sedang berjalan, Remove-Job gagal. Gunakan cmdlet Stop-Job untuk menghentikan pekerjaan yang sedang berjalan. Atau, gunakan Remove-Job dengan parameter Force untuk menghapus pekerjaan yang sedang berjalan.

Pekerjaan tetap berada di cache pekerjaan global hingga Anda menghapus pekerjaan latar belakang atau menutup sesi PowerShell.

Contoh

Contoh 1: Menghapus pekerjaan dengan menggunakan namanya

Contoh ini menggunakan variabel dan alur untuk menghapus pekerjaan berdasarkan nama.

$batch = Get-Job -Name BatchJob
$batch | Remove-Job

Get-Job menggunakan parameter Nama untuk menentukan pekerjaan, BatchJob. Objek pekerjaan disimpan dalam variabel $batch. Objek di $batch dikirimkan melalui jalur ke Remove-Job.

Alternatifnya adalah menggunakan parameter pekerjaan , seperti Remove-Job -Job $batch.

Contoh 2: Menghapus semua pekerjaan dalam sesi

Dalam contoh ini, semua pekerjaan dalam sesi PowerShell saat ini dihapus.

Get-Job | Remove-Job

Get-Job mendapatkan semua pekerjaan dalam sesi PowerShell saat ini. Objek pekerjaan dikirimkan melalui alur ke Remove-Job.

Contoh 3: Menghapus pekerjaan NotStarted

Contoh ini menghapus semua pekerjaan dari sesi PowerShell saat ini yang belum dimulai.

Remove-Job -State NotStarted

Remove-Job menggunakan parameter Status untuk menentukan status pekerjaan.

Contoh 4: Menghapus pekerjaan dengan menggunakan nama yang mudah diingat

Contoh ini menghapus semua pekerjaan dari sesi saat ini dengan nama ramah yang diakhiri dengan batch , termasuk pekerjaan yang sedang berjalan.

Remove-Job -Name *batch -Force

Remove-Job menggunakan parameter Nama untuk menentukan pola nama pekerjaan. Pola ini mencakup karakter pengganti tanda bintang (*) untuk menemukan semua nama pekerjaan yang diakhiri dengan batch. Parameter Force menghapus pekerjaan yang sedang berjalan.

Contoh 5: Menghapus pekerjaan yang dibuat oleh Invoke-Command

Contoh ini menghapus pekerjaan yang dimulai pada komputer jarak jauh menggunakan Invoke-Command dengan parameter AsJob.

Karena contoh menggunakan parameter AsJob, objek pekerjaan dibuat di komputer lokal. Tapi, pekerjaan berjalan di komputer jarak jauh. Akibatnya, Anda menggunakan perintah lokal untuk mengelola pekerjaan.

$job = Invoke-Command -ComputerName Server01 -ScriptBlock {Get-Process} -AsJob
$job | Remove-Job

Invoke-Command menjalankan pekerjaan di komputer Server01. Parameter AsJob menjalankan ScriptBlock sebagai pekerjaan latar belakang. Objek pekerjaan disimpan dalam variabel $job. Objek variabel $job dikirim melalui jalur ke Remove-Job.

Contoh 6: Menghapus pekerjaan yang dibuat oleh Invoke-Command dan Start-Job

Contoh ini menunjukkan cara menghapus pekerjaan di komputer jarak jauh yang dimulai dengan menggunakan Invoke-Command untuk menjalankan Start-Job. Objek pekerjaan dibuat pada komputer jarak jauh dan perintah jarak jauh digunakan untuk mengelola pekerjaan. Koneksi persisten diperlukan saat menjalankan perintah Start-Job jarak jauh.

$S = New-PSSession -ComputerName Server01
Invoke-Command -Session $S -ScriptBlock {Start-Job -ScriptBlock {Get-Process} -Name MyJob}
Invoke-Command -Session $S -ScriptBlock {Remove-Job -Name MyJob}

New-PSSession membuat PSSession, yaitu koneksi persisten, ke komputer Server01. Koneksi disimpan dalam variabel $S.

Invoke-Command tersambung ke sesi yang disimpan di $S. ScriptBlock menggunakan Start-Job untuk memulai pekerjaan jarak jauh. Pekerjaan menjalankan perintah Get-Process dan menggunakan parameter Nama untuk menentukan nama pekerjaan yang mudah diingat, MyJob.

Invoke-Command menggunakan sesi $S dan menjalankan Remove-Job. Parameter Nama menentukan bahwa pekerjaan bernama MyJob dihapus.

Contoh 7: Menghapus pekerjaan dengan menggunakan InstanceId-nya

Contoh ini menghapus pekerjaan berdasarkan InstanceId.

$job = Start-Job -ScriptBlock {Get-Process powershell}
$job | Format-List -Property *
Remove-Job -InstanceId ad02b942-8007-4407-87f3-d23e71955872

State         : Completed
HasMoreData   : True
StatusMessage :
Location      : localhost
Command       : Get-Process powershell
JobStateInfo  : Completed
Finished      : System.Threading.ManualResetEvent
InstanceId    : ad02b942-8007-4407-87f3-d23e71955872
Id            : 3
Name          : Job3
ChildJobs     : {Job4}
PSBeginTime   : 7/26/2019 11:36:56
PSEndTime     : 7/26/2019 11:36:57
PSJobTypeName : BackgroundJob
Output        : {}
Error         : {}
Progress      : {}
Verbose       : {}
Debug         : {}
Warning       : {}
Information   : {}

Start-Job memulai pekerjaan latar belakang dan objek pekerjaan disimpan dalam variabel $job.

Objek di $job dikirimkan melalui jalur ke Format-List. Parameter Properti menggunakan tanda bintang (*) untuk menentukan bahwa semua properti objek ditampilkan dalam daftar.

Remove-Job menggunakan parameter InstanceId untuk menentukan pekerjaan yang akan dihapus.

Parameter

-Command

Menghapus pekerjaan yang menyertakan kata-kata yang ditentukan dalam perintah . Anda dapat memasukkan array yang dipisahkan koma.

Jenis:String[]
Position:Named
Nilai default:None
Diperlukan:False
Terima input alur:True
Terima karakter wildcard:False

-Confirm

Meminta konfirmasi sebelum Remove-Job dijalankan.

Jenis:SwitchParameter
Alias:cf
Position:Named
Nilai default:False
Diperlukan:False
Terima input alur:False
Terima karakter wildcard:False

-Filter

Menghapus pekerjaan yang memenuhi semua kondisi yang ditetapkan dalam tabel hash terkait. Masukkan tabel hash di mana kunci adalah properti pekerjaan dan nilainya adalah nilai properti pekerjaan.

Parameter ini hanya berfungsi pada jenis pekerjaan kustom, seperti pekerjaan alur kerja dan pekerjaan terjadwal. Ini tidak berfungsi pada tugas latar belakang standar, seperti yang dibuat dengan menggunakan Start-Job.

Parameter ini diperkenalkan di PowerShell 3.0.

Jenis:Hashtable
Position:0
Nilai default:None
Diperlukan:True
Terima input alur:True
Terima karakter wildcard:False

-Force

Menghapus pekerjaan walaupun status pekerjaan berjalan. Jika parameter Force tidak ditentukan, Remove-Job tidak menghapus pekerjaan yang sedang berjalan.

Jenis:SwitchParameter
Alias:F
Position:Named
Nilai default:False
Diperlukan:False
Terima input alur:False
Terima karakter wildcard:False

-Id

Menghapus pekerjaan latar belakang yang ditentukan dengan Id . Anda dapat memasukkan array yang dipisahkan oleh koma. Id pekerjaan adalah bilangan bulat unik yang mengidentifikasi pekerjaan dalam sesi saat ini.

Untuk menemukan Id dari pekerjaan, gunakan Get-Job tanpa parameter.

Jenis:Int32[]
Position:0
Nilai default:None
Diperlukan:True
Terima input alur:True
Terima karakter wildcard:False

-InstanceId

Menghapus tugas dengan InstanceId yang ditentukan. Anda dapat memasukkan array yang dipisahkan koma. InstanceId adalah GUID unik untuk mengidentifikasi suatu pekerjaan.

Untuk menemukan InstanceId pekerjaan, gunakan Get-Job.

Jenis:Guid[]
Position:0
Nilai default:None
Diperlukan:True
Terima input alur:True
Terima karakter wildcard:False

-Job

Menentukan pekerjaan yang akan dihapus. Masukkan variabel yang berisi daftar pekerjaan atau perintah yang mengambil pekerjaan tersebut. Anda dapat memasukkan array yang dipisahkan koma.

Anda dapat mengirim objek pekerjaan ke alur Remove-Job.

Jenis:Job[]
Position:0
Nilai default:None
Diperlukan:True
Terima input alur:True
Terima karakter wildcard:False

-Name

Hanya menghapus pekerjaan dengan nama ramah yang ditentukan. Kartubebas diizinkan. Anda dapat memasukkan array yang dipisahkan koma.

Nama yang mudah diingat untuk pekerjaan tidak dijamin unik, bahkan dalam sesi PowerShell. Gunakan parameter WhatIf dan Konfirmasi saat Anda menghapus file berdasarkan nama.

Jenis:String[]
Position:0
Nilai default:None
Diperlukan:True
Terima input alur:True
Terima karakter wildcard:True

-State

Hanya menghapus pekerjaan dengan status yang ditentukan. Untuk menghapus pekerjaan dengan status Menjalankan, gunakan parameter Force.

Nilai yang diterima:

  • AtBreakpoint
  • Diblokir
  • Selesai
  • Terputus
  • Gagal
  • Belum Dimulai
  • Berlari
  • Berhenti
  • Menghentikan
  • Ditangguhkan
  • Menangguhkan
Jenis:JobState
Nilai yang diterima:AtBreakpoint, Blocked, Completed, Disconnected, Failed, NotStarted, Running, Stopped, Stopping, Suspended, Suspending
Position:0
Nilai default:None
Diperlukan:True
Terima input alur:True
Terima karakter wildcard:False

-WhatIf

Menunjukkan apa yang akan terjadi jika Remove-Job dijalankan. Cmdlet tidak dijalankan.

Jenis:SwitchParameter
Alias:wi
Position:Named
Nilai default:False
Diperlukan:False
Terima input alur:False
Terima karakter wildcard:False

Input

Job

Anda dapat menyalurkan objek Pekerjaan ke cmdlet ini.

Output

None

Cmdlet ini tidak mengembalikan output.

Catatan

PowerShell menyertakan alias berikut untuk Remove-Job:

  • Semua platform:
    • rjb

Pekerjaan PowerShell membuat proses baru. Ketika pekerjaan selesai, proses akan berhenti. Saat Remove-Job dijalankan, status pekerjaan akan dihapus.

Jika pekerjaan berhenti sebelum selesai dan prosesnya belum berakhir, proses akan dihentikan secara paksa.