Aracılığıyla paylaş


Remove-Job

PowerShell arka plan işini siler.

Sözdizimi

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

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

tüm işleri silmek veya seçili işleri silmek için Remove-Job kullanabilirsiniz. İşler, Adı, Kimliği, InstanceId, Commandveya Stateile tanımlanır. Veya, bir iş nesnesi Remove-Jobişlem hattına gönderilebilir. Parametreler veya parametre değerleri olmadan Remove-Job hiçbir etkisi olmaz.

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 Remove-Job hata verir. Çalışan bir işi durdurmak için Stop-Job cmdlet'ini kullanın. Ya da çalışan bir işi silmek için Remove-Job parametresi ile kullanın.

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, Name- parametresini iş belirtmek için BatchJobkullanır. İş nesnesi $batch değişkeninde depolanır. $batch içindeki nesne işlem hattından Remove-Job'e gönderilir.

Alternatif olarak gibi Remove-Job -Job $batch parametresini kullanabilirsiniz.

Ö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: Başlatılmamış 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: Anlamlı bir ad kullanarak görevleri silme

Bu örnek, geçerli oturumdaki, çalışan işler de dahil olmak üzere, dost adları topluile biten tüm işleri siler.

Remove-Job -Name *batch -Force

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

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

Bu örnek, Invoke-Command parametresiyle kullanılarak 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ıştırılı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-Command, Server01 bilgisayarında bir görev çalıştırır. AsJob parametresi, arka plan işi olarak ScriptBlock çalıştırır. İş nesnesi $job değişkeninde depolanır. $job değişken nesnesi Remove-Job'e işlem hattından aşağı gönderilir.

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

Bu örnekte, Invoke-Commandçalıştırmak için Start-Job kullanılarak başlatılan uzak bir bilgisayardaki 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 komutu ç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 bilgisayara kalıcı bir bağlantı olan pssessionoluşturur. Bağlantı $S değişkenine kaydedilir.

Invoke-Command, $Solarak kaydedilen oturuma bağlanır. ScriptBlock uzaktan iş başlatmak için Start-Job kullanır. İş, bir Get-Process komutu çalıştırır ve MyJobgibi anlaşılır bir iş adı belirtmek için Adı parametresini kullanır.

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

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

Bu örnek, InstanceIdtemelinde bir işi 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 $job değişkenine kaydedilir.

$job içindeki nesne işlem hattından Format-List'e gönderilir. Özelliği parametresi, nesnenin tüm özelliklerinin listede görüntüleneceğini belirtmek için yıldız işareti (*) kullanır.

Remove-Job silinecek 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.

Tür:String[]
Position:Named
Default value:None
Gerekli:False
İşlem hattı girişini kabul et:True
Joker karakterleri kabul et:False

-Confirm

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

Tür:SwitchParameter
Diğer adlar:cf
Position:Named
Default value:False
Gerekli:False
İşlem hattı girişini kabul et:False
Joker karakterleri kabul et:False

-Filter

İlişkili karma tabloda belirlenen tüm koşulları karşılayan görevleri siler. Bir karma tablo girin, burada anahtarlar iş özellikleri, değerler ise iş özelliği değerleridir.

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

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

Tür:Hashtable
Position:0
Default value:None
Gerekli:True
İşlem hattı girişini kabul et:True
Joker karakterleri kabul et:False

-Force

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

Tür:SwitchParameter
Diğer adlar:F
Position:Named
Default value:False
Gerekli:False
İşlem hattı girişini kabul et:False
Joker karakterleri kabul et:False

-Id

Belirtilen Kimliğine sahip 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ğinibulmak için parametresiz Get-Job kullanın.

Tür:Int32[]
Position:0
Default value:None
Gerekli:True
İşlem hattı girişini kabul et:True
Joker karakterleri kabul et:False

-InstanceId

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

Bir işin InstanceId'ini bulmak için Get-Jobkullanın.

Tür:Guid[]
Position:0
Default value:None
Gerekli:True
İşlem hattı girişini kabul et:True
Joker karakterleri kabul et:False

-Job

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

İş nesnelerini işlem hattı boyunca Remove-Job'a gönderebilirsiniz.

Tür:Job[]
Position:0
Default value:None
Gerekli:True
İşlem hattı girişini kabul et:True
Joker karakterleri kabul et:False

-Name

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

Görevlerin kullanıcı dostu isimlerinin, bir PowerShell oturumunda bile benzersiz olması güvence altına alınmamıştır. Dosyaları ada göre sildiğinizde WhatIf ve Confirm parametrelerini kullanın.

Tür:String[]
Position:0
Default value:None
Gerekli:True
İşlem hattı girişini kabul et:True
Joker karakterleri kabul et:True

-State

Yalnızca belirtilen duruma sahip işleri siler. Çalışıyordurumuna sahip işleri silmek için Zorla parametresini kullanın.

Kabul edilen değerler:

  • AtBreakpoint
  • Engellenmiş
  • Tamamlandı
  • Bağlantısı kesilmiş
  • Başarısız
  • Başlamadı
  • Koşu
  • Durdu
  • Durdurma
  • Askıya
  • Askıya
Tür:JobState
Kabul edilen değerler:AtBreakpoint, Blocked, Completed, Disconnected, Failed, NotStarted, Running, Stopped, Stopping, Suspended, Suspending
Position:0
Default value:None
Gerekli:True
İşlem hattı girişini kabul et:True
Joker karakterleri kabul et:False

-WhatIf

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

Tür:SwitchParameter
Diğer adlar:wi
Position:Named
Default value:False
Gerekli:False
İşlem hattı girişini kabul et:False
Joker karakterleri kabul et:False

Girişler

Job

Bir İş nesnesini bu cmdlet'e yöneltebilirsiniz.

Çıkışlar

None

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

Notlar

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

  • Tüm platformlar:
    • rjb

PowerShell işi yeni bir süreç oluşturur. İş tamamlandığında, işlem sona erer. Remove-Job çalıştırıldığında işin durumu silinir.

Bir iş tamamlanmadan önce durursa ve işlemi henüz sonlanmamışsa, işlem zorla sonlandırılır.