Remove-Job

PowerShell arka plan işini siler.

Syntax

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>]

Description

cmdlet'iRemove-Job, cmdlet'i veya AsJob parametresini Start-Job destekleyen cmdlet'ler Invoke-Command tarafından başlatılan PowerShell arka plan işlerini siler.

Tüm işleri silmek veya seçili işleri silmek için kullanabilirsiniz Remove-Job . İşler Ad, Kimlik, Örnek Kimliği, Komut veya Durum ile tanımlanır. Öte yandan, bir iş nesnesi işlem hattına Remove-Jobgönderilebilir. Parametreler veya parametre değerleri Remove-Job olmadan hiçbir etkisi yoktur.

PowerShell 3.0'dan bu yana, Remove-Job zamanlanmış işler ve iş akışı işleri gibi özel iş türlerini silebilir. Örneğin, Remove-Job zamanlanmış işi, diskte zamanlanan işin tüm örneklerini ve tetiklenen tüm iş örneklerinin sonuçlarını siler.

Çalışan bir işi silmeye çalışırsanız başarısız Remove-Job olur. Stop-Job Çalışan bir işi durdurmak için cmdlet'ini kullanın. Veya çalışan bir işi silmek için Force parametresiyle kullanın.Remove-Job

Arka plan işini silene veya PowerShell oturumunu kapatana kadar işler genel iş önbelleğinde kalır.

Örnekler

Örnek 1: Adını kullanarak bir işi silme

Bu örnekte bir işi ada göre silmek için bir değişken ve işlem hattı kullanılır.

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

Get-Job, BatchJob işini belirtmek için Name parametresini kullanır. İş nesnesi değişkeninde $batch depolanır. içindeki $batch nesnesi işlem hattına Remove-Jobgönderilir.

Alternatif olarak job parametresini kullanabilirsiniz; örneğinRemove-Job -Job $batch.

Örnek 2: Oturumdaki tüm işleri silme

Bu örnekte, geçerli PowerShell oturumundaki tüm işler silinir.

Get-job | Remove-Job

Get-Job geçerli PowerShell oturumundaki tüm işleri alır. İş nesneleri işlem hattına Remove-Jobgönderilir.

Örnek 3: NotStarted işlerini silme

Bu örnek, geçerli PowerShell oturumundan başlatılmamış tüm işleri siler.

Remove-Job -State NotStarted

Remove-Job, iş durumunu belirtmek için State parametresini kullanır.

Örnek 4: Kolay bir ad kullanarak işleri silme

Bu örnek, çalışan işler de dahil olmak üzere toplu iş* ile biten kolay adlarla geçerli oturumdaki tüm işleri siler.

Remove-Job -Name *batch -Force

Remove-Job bir iş adı deseni belirtmek için Name parametresini kullanır. Desen, toplu iş ile biten tüm iş adlarını bulmak için yıldız işareti (*) joker karakterini içerir. Force parametresi, çalışan işleri siler.

Örnek 5: Invoke-Command tarafından oluşturulan bir işi silme

Bu örnek, AsJob parametresiyle kullanılarak Invoke-Command uzak bilgisayarda başlatılan bir işi kaldırır.

Örnekte AsJob parametresi kullanıldığından, iş nesnesi yerel bilgisayarda oluşturulur. Ancak, iş uzak bir bilgisayarda çalışır. Sonuç olarak, işi yönetmek için yerel komutları kullanırsınız.

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

Invoke-CommandServer01 bilgisayarında bir iş çalıştırır. AsJob parametresi ScriptBlock'i arka plan işi olarak çalıştırır. İş nesnesi değişkeninde $job depolanır. Değişken $job nesnesi işlem hattına Remove-Jobgönderilir.

Örnek 6: Invoke-Command ve Start-Job tarafından oluşturulan bir işi silme

Bu örnekte, komutunu çalıştırmak Start-Jobiçin kullanılarak Invoke-Command başlatılan uzak bir bilgisayardaki bir işin nasıl kaldırılacağı gösterilmektedir. İş nesnesi uzak bilgisayarda oluşturulur ve işi yönetmek için uzak komutlar kullanılır. Uzak Start-Job bir komut çalıştırılırken kalıcı bir bağlantı gereklidir.

$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, Server01 bilgisayarına kalıcı bir bağlantı olan PSSession oluşturur. Bağlantı değişkene $S kaydedilir.

Invoke-Command içinde kaydedilen $Soturuma bağlanır. ScriptBlock, uzak bir işi başlatmak için kullanırStart-Job. İş bir Get-Process komut çalıştırır ve Ad parametresini kullanarak kolay bir iş adı (MyJob) belirtir.

Invoke-Command oturumunu $S kullanır ve çalıştırır Remove-Job. Name parametresi MyJob adlı işin silindiğini belirtir.

Örnek 7: InstanceId değerini kullanarak bir işi silme

Bu örnek, bir işi InstanceId'sine göre kaldırır.

$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 bir arka plan işi başlatır ve iş nesnesi değişkene $job kaydedilir.

içindeki $job nesnesi işlem hattına Format-Listgönderilir. Property parametresi, nesnenin tüm özelliklerinin bir listede görüntüleneceğini belirtmek için yıldız işareti (*) kullanır.

Remove-Jobsilinecek işi belirtmek için InstanceId parametresini kullanır.

Parametreler

-Command

Komutta belirtilen sözcükleri içeren işleri siler. Virgülle ayrılmış bir dizi girebilirsiniz.

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

-Confirm

Çalıştırilmeden önce Remove-Job sizden onay ister.

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

-Filter

İlişkili karma tabloda oluşturulan tüm koşulları karşılayan işleri siler. Anahtarların iş özellikleri, değerlerin ise iş özelliği değerleri olduğu bir karma tablo girin.

Bu parametre yalnızca iş akışı işleri ve zamanlanmış işler gibi özel iş türlerinde çalışır. kullanılarak Start-Joboluşturulanlar gibi standart arka plan işlerinde çalışmaz.

Bu parametre PowerShell 3.0'da kullanıma sunulmuştur.

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

-Force

İşin durumu Çalışıyor olsa bile işi siler. Force parametresi belirtilmezse, Remove-Job çalışan işleri silmez.

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

-Id

Belirtilen kimlikle arka plan işlerini siler. Virgülle ayrılmış bir dizi girebilirsiniz. İşin kimliği, geçerli oturumdaki bir işi tanımlayan benzersiz bir tamsayıdır.

bir işin kimliğini bulmak için parametresiz kullanın Get-Job .

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

-InstanceId

Belirtilen InstanceId değerine sahip işleri siler. Virgülle ayrılmış bir dizi girebilirsiniz. InstanceId, bir işi tanımlayan benzersiz bir GUID'dir.

bir işin InstanceId değerini bulmak için kullanınGet-Job.

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

-Job

Silinecek işleri belirtir. İşleri içeren bir değişken veya işleri alan bir komut girin. Virgülle ayrılmış bir dizi girebilirsiniz.

İş nesnelerini işlem hattının Remove-Jobaşağısına gönderebilirsiniz.

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

-Name

Yalnızca belirtilen kolay ada sahip işleri siler. Joker karakterlere izin verilir. Virgülle ayrılmış bir dizi girebilirsiniz.

İşlerin kolay adlarının, Bir PowerShell oturumunda bile benzersiz olması garanti değildir. Dosyaları ada göre silerken WhatIf ve Confirm parametrelerini kullanın.

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

-State

Yalnızca belirtilen duruma sahip işleri siler. Çalışıyor durumuna sahip işleri silmek için Force parametresini kullanın.

Kabul edilen değerler:

  • AtBreakpoint
  • Engellendi
  • Tamamlandı
  • Bağlantı kesildi
  • Başarısız
  • NotStarted
  • Çalışıyor
  • Durduruldu
  • Durduruluyor
  • Askıya alındı
  • Askıya alınıyor
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

Çalıştırılırsa Remove-Job ne olacağını gösterir. Cmdlet çalıştırılmıyor.

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

Girişler

Job

Bir job nesnesini bu cmdlet'e yöneltebilirsiniz.

Çıkışlar

None

Bu cmdlet çıkış döndürmez.

Notlar

PowerShell için aşağıdaki diğer adları Remove-Jobiçerir:

  • Tüm platformlar:
    • rjb

PowerShell işi yeni bir işlem oluşturur. İş tamamlandığında işlemden çıkılır. Çalıştırıldığında Remove-Job işin durumu kaldırılır.

Bir iş tamamlanmadan önce durursa ve işlemden çıkılmamışsa, işlem zorla sonlandırılır.