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-Job
menggunakan 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-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 yang mudah diingat yang diakhir 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 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-PSSession
membuat 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-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.
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
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.