Stop-Job

PowerShell arka plan işini durdurur.

Syntax

Stop-Job
    [-PassThru]
    [-Id] <Int32[]>
    [-WhatIf]
    [-Confirm]
    [<CommonParameters>]
Stop-Job
    [-Job] <Job[]>
    [-PassThru]
    [-WhatIf]
    [-Confirm]
    [<CommonParameters>]
Stop-Job
    [-PassThru]
    [-Name] <String[]>
    [-WhatIf]
    [-Confirm]
    [<CommonParameters>]
Stop-Job
    [-PassThru]
    [-InstanceId] <Guid[]>
    [-WhatIf]
    [-Confirm]
    [<CommonParameters>]
Stop-Job
    [-PassThru]
    [-State] <JobState>
    [-WhatIf]
    [-Confirm]
    [<CommonParameters>]
Stop-Job
    [-PassThru]
    [-Filter] <Hashtable>
    [-WhatIf]
    [-Confirm]
    [<CommonParameters>]

Description

Cmdlet devam Stop-Job eden PowerShell arka plan işlerini durdurur. Bu cmdlet'i kullanarak tüm işleri durdurabilir veya seçilen işleri adına, kimliğine, örnek kimliğine veya durumuna göre durdurabilir ya da bir iş nesnesini 'ye Stop-Jobgeçirebilirsiniz.

cmdlet'i veya herhangi bir cmdlet'in AsJob parametresi kullanılarak Start-Job başlatılanlar gibi arka plan işlerini durdurmak için kullanabilirsinizStop-Job. Bir arka plan işini durdurduğunuzda PowerShell, bu iş kuyruğunda bekleyen tüm görevleri tamamlar ve sonra işi sonlandırır. Bu komut gönderildikten sonra kuyruğa yeni görev eklenmez.

Bu cmdlet arka plan işlerini silmez. Bir işi silmek için cmdlet'ini Remove-Job kullanın.

Windows PowerShell 3.0'dan başlayarak WorkflowJobs Stop-Job ve ScheduledJobs örnekleri gibi özel iş türlerini de durdurur. Özel iş türüne sahip bir işi durdurmayı etkinleştirmek Stop-Job için, cmdlet'ini kullanarak Import-Module veya modülde bir cmdlet alarak bir Stop-Job komut çalıştırmadan önce özel iş türünü destekleyen modülü oturuma aktarın. Belirli bir özel iş türü hakkında bilgi için özel iş türü özelliğinin belgelerine bakın.

Örnekler

Örnek 1: Invoke-Command ile uzak bir bilgisayarda işi durdurma

$s = New-PSSession -ComputerName Server01 -Credential Domain01\Admin02
$j = Invoke-Command -Session $s -ScriptBlock {Start-Job -ScriptBlock {Get-EventLog -LogName System}}
Invoke-Command -Session $s -ScriptBlock { Stop-job -Job $Using:j }

Bu örnekte, uzak bilgisayarda çalışan bir işi durdurmak için cmdlet'in nasıl kullanılacağı Stop-Job gösterilmektedir.

İş, komutu Start-Job uzaktan çalıştırmak için cmdlet'iyle Invoke-Command başlatıldığından, iş nesnesi uzak bilgisayarda depolanır. Bir komutu uzaktan çalıştırmak için başka Invoke-Command bir Stop-Job komut kullanmanız gerekir. Uzak arka plan işleri hakkında daha fazla bilgi için bkz. about_Remote_Jobs.

İlk komut, Server01 bilgisayarında bir PowerShell oturumu (PSSession) oluşturur ve ardından oturum nesnesini değişkende $s depolar. komutu, bir etki alanı yöneticisinin kimlik bilgilerini kullanır.

İkinci komut, oturumda Invoke-Command bir Start-Job komut çalıştırmak için cmdlet'ini kullanır. İşteki komut, Sistem olay günlüğündeki tüm olayları alır. Sonuçta elde edilen iş nesnesi değişkeninde $j depolanır.

Üçüncü komut işi durdurur. Cmdlet'ini Invoke-Command kullanarak Server01'deki PSSession'da bir Stop-Job komut çalıştırır. İş nesneleri yerel bilgisayardaki bir değişken olan içinde $jdepolandığından, komut yerel değişken olarak tanımlamak $j için Using scope değiştiricisini kullanır. Kapsam değiştirici kullanma hakkında daha fazla bilgi için bkz. about_Remote_Variables.

Komut tamamlandığında iş durdurulur ve içindeki $s PSSession kullanılabilir.

Örnek 2: Arka plan işini durdurma

Stop-Job -Name "Job1"

Bu komut arka plan işini durdurur Job1 .

Örnek 3: Birkaç arka plan işini durdurma

Stop-Job -Id 1, 3, 4

Bu komut üç işi durdurur. Kimlikleriyle tanımlar.

Örnek 4: Tüm arka plan işlerini durdurma

Get-Job | Stop-Job

Bu komut geçerli oturumdaki tüm arka plan işlerini durdurur.

Örnek 5: Engellenen tüm arka plan işlerini durdurma

Stop-Job -State Blocked

Bu komut engellenen tüm işleri durdurur.

Örnek 6: Örnek kimliğine göre işi durdurma

Get-Job | Format-Table ID, Name, Command, @{Label="State";Expression={$_.JobStateInfo.State}},
InstanceID -Auto

Id Name Command                 State  InstanceId
-- ---- -------                 -----  ----------
1 Job1 start-service schedule Running 05abb67a-2932-4bd5-b331-c0254b8d9146
3 Job3 start-service schedule Running c03cbd45-19f3-4558-ba94-ebe41b68ad03
5 Job5 get-service s*         Blocked e3bbfed1-9c53-401a-a2c3-a8db34336adf

Stop-Job -InstanceId e3bbfed1-9c53-401a-a2c3-a8db34336adf

Bu komutlar, InstanceID'sine göre bir işin nasıl durdurulacağını gösterir.

İlk komut, geçerli oturumdaki Get-Job işleri almak için cmdlet'ini kullanır. komutu, işleri bir Format-Table komuta göndermek için bir işlem hattı işleci (|) kullanır ve her işin belirtilen özelliklerinin bir tablosunu görüntüler. Tablo, her işin InstanceID değerini içerir. İş durumunu görüntülemek için hesaplanan bir özellik kullanır.

İkinci komut, seçili işi Stop-Job durdurmak için InstanceID parametresine sahip bir komut kullanır.

Örnek 7: Uzak bilgisayarda işi durdurma

$j = Invoke-Command -ComputerName Server01 -ScriptBlock {Get-EventLog -LogName System} -AsJob
$j | Stop-Job -PassThru

Id    Name    State      HasMoreData     Location         Command
--    ----    ----       -----------     --------         -------
5     Job5    Stopped    True            user01-tablet    Get-EventLog -LogName Sy...

Bu örnekte, uzak bilgisayarda çalışan bir işi durdurmak için cmdlet'in nasıl kullanılacağı Stop-Job gösterilmektedir.

İş cmdlet'in AsJob parametresiyle başlatıldığından Invoke-Command, iş uzak bilgisayarda çalıştırılsa bile İş nesnesi yerel bilgisayarda bulunur. Bu nedenle, işi durdurmak için yerel Stop-Job bir komut kullanabilirsiniz.

İlk komut, Server01 bilgisayarında bir arka plan işi başlatmak için cmdlet'ini kullanır Invoke-Command . komutu, uzak komutu arka plan işi olarak çalıştırmak için AsJob parametresini kullanır.

Bu komut, cmdlet'in döndürdüğü aynı iş nesnesi olan Start-Job bir iş nesnesi döndürür. komutu, iş nesnesini değişkene $j kaydeder.

İkinci komut, değişkenindeki $jStop-Jobişi adresine göndermek için bir işlem hattı işleci kullanır. Komutu, bir iş nesnesini döndürmek için doğrudan Stop-Job PassThru parametresini kullanır. İş nesnesi görüntüsü, işin durumunun Durduruldu olduğunu onaylar.

Uzak arka plan işleri hakkında daha fazla bilgi için bkz . about_Remote_Jobs.

Parametreler

-Confirm

Cmdlet'i çalıştırmadan önce sizden onay ister.

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

-Filter

Koşulların karma tablosunu belirtir. Bu cmdlet her koşula uyan işleri durdurur. Anahtarların iş özellikleri, değerlerin ise iş özelliği değerleri olduğu bir karma tablo girin.

Bu parametre yalnızca WorkflowJobs ve ScheduledJobs gibi özel iş türlerinde çalışır. Cmdlet'i kullanılarak Start-Job oluşturulanlar gibi standart arka plan işlerinde çalışmaz. Bu parametre desteği hakkında bilgi için iş türü için yardım konusuna bakın.

Bu parametre Windows 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

-Id

Bu cmdlet'in durdurduğunu işlerin kimliklerini belirtir. Varsayılan değer geçerli oturumdaki tüm işlerdir.

Kimlik, geçerli oturumdaki işi benzersiz olarak tanımlayan bir tamsayıdır. Örnek kimliğinden daha kolay anımsanıp yazabilirsiniz, ancak yalnızca geçerli oturumda benzersizdir. Virgülle ayırarak bir veya daha fazla kimlik yazabilirsiniz. İşin kimliğini bulmak için yazın Get-Job.

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

-InstanceId

Bu cmdlet'in durdurduğunu işlerin örnek kimliklerini belirtir. Varsayılan değer tüm işlerdir.

Örnek kimliği, bilgisayardaki işi benzersiz olarak tanımlayan bir GUID'dir. bir işin örnek kimliğini bulmak için kullanın Get-Job.

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

-Job

Bu cmdlet'in durdurduğunu işleri belirtir. İşleri içeren bir değişken veya işleri alan bir komut girin. İşleri cmdlet'e göndermek Stop-Job için bir işlem hattı işleci de kullanabilirsiniz. Varsayılan olarak, Stop-Job geçerli oturumda başlatılan tüm işleri siler.

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

-Name

Bu cmdlet'in durdurduğunu işlerin kolay adlarını belirtir. İş adlarını virgülle ayrılmış bir listeye girin veya bir iş adı deseni girmek için joker karakterler (*) kullanın. Varsayılan olarak, Stop-Job geçerli oturumda oluşturulan tüm işleri durdurur.

Kolay adın benzersiz olması garanti edilmediğinden, işleri ada göre durdururken WhatIf ve Confirm parametrelerini kullanın.

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

-PassThru

Üzerinde çalıştığınız öğeyi temsil eden bir nesne döndürür. Varsayılan olarak, bu cmdlet herhangi bir çıkış oluşturmaz.

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

-State

bir iş durumu belirtir. Bu cmdlet yalnızca belirtilen durumdaki işleri durdurur. Bu parametrenin kabul edilebilir değerleri şunlardır:

  • NotStarted
  • Running
  • Completed
  • Failed
  • Stopped
  • Blocked
  • Suspended
  • Disconnected
  • Suspending
  • Stopping

İş durumları hakkında daha fazla bilgi için bkz . JobState Numaralandırması.

Type:JobState
Accepted values:NotStarted, Running, Completed, Failed, Stopped, Blocked, Suspended, Disconnected, Suspending, Stopping, AtBreakpoint
Position:0
Default value:All jobs
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-WhatIf

Cmdlet çalıştırılıyorsa ne olacağını gösterir. Cmdlet çalıştırılmaz.

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

Girişler

System.Management.Automation.RemotingJob

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

Çıkışlar

None

Varsayılan olarak, bu cmdlet çıkış döndürmez.

System.Management.Automation.PSRemotingJob

PassThru parametresini kullandığınızda, bu cmdlet bir iş nesnesi döndürür.

Notlar

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

  • spjb