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

Remove-Job Cmdlet menghapus pekerjaan latar belakang PowerShell yang dimulai oleh Start-Job cmdlet 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 berdasarkan Nama, ID, ID Instans, Perintah, atau Statusnya. Atau, objek pekerjaan dapat dikirim ke 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 instans pekerjaan terjadwal pada disk, dan hasil semua instans pekerjaan yang dipicu.

Jika Anda mencoba menghapus pekerjaan yang sedang berjalan, Remove-Job gagal. Stop-Job Gunakan cmdlet untuk menghentikan pekerjaan yang sedang berjalan. Atau, gunakan Remove-Job dengan parameter Paksa 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-Jobmenggunakan parameter Nama untuk menentukan pekerjaan, BatchJob. Objek pekerjaan disimpan dalam $batch variabel . Objek di $batch dikirimkan alur 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 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-Jobmenggunakan 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 yang mudah diingat yang diakhir dengan batch*, termasuk pekerjaan yang sedang berjalan.

Remove-Job -Name *batch -Force

Remove-Jobmenggunakan parameter Nama untuk menentukan pola nama pekerjaan. Pola ini mencakup kartubebas tanda bintang (*) untuk menemukan semua nama pekerjaan yang diakhir dengan batch. Parameter Force menghapus pekerjaan yang 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 pada komputer Server01 . Parameter AsJob menjalankan ScriptBlock sebagai pekerjaan latar belakang. Objek pekerjaan disimpan dalam $job variabel . Objek $job variabel dikirimkan alur 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 jarak jauh Start-Job .

$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-PSSessionmembuat PSSession, koneksi persisten, ke komputer Server01. Koneksi disimpan dalam $S variabel.

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

Invoke-Command$S menggunakan sesi 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-nya.

$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 $job variabel .

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

Remove-Jobmenggunakan 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.

Type:String[]
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-Confirm

Meminta konfirmasi sebelum Remove-Job dijalankan.

Type:SwitchParameter
Aliases:cf
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters: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 pekerjaan latar belakang standar, seperti yang dibuat dengan menggunakan Start-Job.

Parameter ini diperkenalkan di PowerShell 3.0.

Type:Hashtable
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-Force

Menghapus pekerjaan meskipun status pekerjaan Sedang Berjalan. Jika parameter Paksa tidak ditentukan, Remove-Job tidak menghapus pekerjaan yang sedang berjalan.

Type:SwitchParameter
Aliases:F
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Id

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

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

Type:Int32[]
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-InstanceId

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

Untuk menemukan InstanceId pekerjaan, gunakan Get-Job.

Type:Guid[]
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-Job

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

Anda dapat mengirim objek pekerjaan ke alur ke Remove-Job.

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

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

-State

Hanya menghapus pekerjaan dengan status yang ditentukan. Untuk menghapus pekerjaan dengan status Berjalan, gunakan parameter Paksa.

Nilai yang diterima:

  • AtBreakpoint
  • Terblokir
  • Selesai
  • Terputus
  • Gagal
  • Belum Dimulai
  • Sedang berjalan
  • Dihentikan
  • Menghentikan
  • Ditangguhkan
  • Menangguhkan
Type:JobState
Accepted values:AtBreakpoint, Blocked, Completed, Disconnected, Failed, NotStarted, Running, Stopped, Stopping, Suspended, Suspending
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-WhatIf

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

Type:SwitchParameter
Aliases:wi
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters: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 keluar. Saat Remove-Job dijalankan, status pekerjaan dihapus.

Jika pekerjaan berhenti sebelum penyelesaian dan prosesnya belum keluar, proses akan dihentikan secara paksa.