Aracılığıyla paylaş


Suspend-Job

İş akışı işlerini geçici olarak durdurur.

Sözdizimi

Suspend-Job
       [-Force]
       [-Wait]
       [-Id] <Int32[]>
       [-WhatIf]
       [-Confirm]
       [<CommonParameters>]
Suspend-Job
       [-Job] <Job[]>
       [-Force]
       [-Wait]
       [-WhatIf]
       [-Confirm]
       [<CommonParameters>]
Suspend-Job
       [-Force]
       [-Wait]
       [-Name] <String[]>
       [-WhatIf]
       [-Confirm]
       [<CommonParameters>]
Suspend-Job
       [-Force]
       [-Wait]
       [-InstanceId] <Guid[]>
       [-WhatIf]
       [-Confirm]
       [<CommonParameters>]
Suspend-Job
       [-Force]
       [-Wait]
       [-Filter] <Hashtable>
       [-WhatIf]
       [-Confirm]
       [<CommonParameters>]
Suspend-Job
       [-Force]
       [-Wait]
       [-State] <JobState>
       [-WhatIf]
       [-Confirm]
       [<CommonParameters>]

Description

Suspend-Job cmdlet'i iş akışı işlerini askıya alır. Askıya alma, bir iş akışı işini geçici olarak kesme veya duraklatma anlamına gelir. Bu cmdlet, iş akışı çalıştıran kullanıcıların iş akışını askıya almasını sağlar. İş akışını askıya alan iş akışındaki bir komut olan Askıya Alma-İş Akışıhttps://go.microsoft.com/fwlink/?LinkId=267141 etkinliğini tamamlar.

Suspend-Job cmdlet'i yalnızca iş akışı işlerinde çalışır. Start-Job cmdlet'i kullanılarak başlatılanlar gibi standart arka plan işlerinde çalışmaz.

İş akışı işini tanımlamak için işin PSJobTypeName özelliğinde PSWorkflowJob değerini arayın. Belirli bir özel iş türünün Suspend-Job cmdlet'ini destekleyip desteklemediğini belirlemek için özel iş türünün yardım konularına bakın.

Bir iş akışı işini askıya aldığınızda, iş akışı işi bir sonraki denetim noktasına çalışır, askıya alır ve hemen bir iş akışı işi nesnesi döndürür. İşi almadan önce askıya alma işleminin tamamlanmasını beklemek için Suspend-Job parametresini veya Wait-Job cmdlet'ini kullanın. İş akışı işi askıya alındığında, işin State özelliğinin değeri Askıya Alındı olur.

Doğru askıya alma, denetim noktalarına bağlıdır. İş akışı işinin durum veya veri kaybı olmadan sürdürülebilmesi için geçerli iş durumu, meta veriler ve çıkış denetim noktasına kaydedilir. İş akışı işinin denetim noktaları yoksa, doğru şekilde askıya alınamaz. Çalıştırdığınız bir iş akışına denetim noktaları eklemek için PSPersist iş akışı ortak parametresini kullanın. herhangi bir iş akışı işini hemen askıya almak ve denetim noktaları olmayan bir iş akışı işini askıya almak için Force parametresini kullanabilirsiniz, ancak eylem durum ve veri kaybına neden olabilir.

İş akışı işi (PSWorkflowJob) gibi özel bir iş türünde İş cmdlet'ini kullanmadan önce, Import-Module cmdlet'ini kullanarak veya modülde bir cmdlet kullanarak özel iş türünü destekleyen modülü içeri aktarın.

Bu cmdlet, Windows PowerShell 3.0'da kullanıma sunulmuştur.

Örnekler

Örnek 1: İş akışı işini ada göre askıya alma

Bu örnekte bir iş akışı işini askıya alma işlemi gösterilmektedir.

İlk komut Get-SystemLog iş akışını oluşturur. İş akışı, iş akışında bir denetim noktası tanımlamak için CheckPoint-Workflow etkinliğini kullanır.

İkinci komut, iş akışını arka plan işi olarak çalıştırmak için tüm iş akışlarında ortak olan Get-SystemLog parametresini kullanır. Komut, iş akışı işi için kolay bir ad belirtmek üzere JobName iş akışı ortak parametresini kullanır.

Üçüncü komut, Get-Job iş akışı işini almak için LogflowJob cmdlet'ini kullanır. Çıktı, PSJobTypeName özelliğinin değerinin PSWorkflowJob olduğunu gösterir.

Dördüncü komut, Suspend-Job işini askıya almak için LogflowJob cmdlet'ini kullanır. İş denetim noktasına çalışır ve askıya alır.

#Sample Workflow
workflow Get-SystemLog
{
    $Events = Get-WinEvent -LogName System
    CheckPoint-Workflow
    inlinescript {\\Server01\Scripts\Analyze-SystemEvents.ps1 -Events $Events}
}
Get-SystemLog -AsJob -JobName "LogflowJob"
Get-Job -Name LogflowJob

Id   Name          PSJobTypeName   State       HasMoreData     Location   Command
--   ----          -------------   -----       -----------     --------   -------
4    LogflowJob    PSWorkflowJob   Running     True            localhost   Get-SystemLog

Suspend-Job -Name LogflowJob

Id   Name          PSJobTypeName   State       HasMoreData     Location   Command
--   ----          -------------   -----       -----------     --------   -------
4    LogflowJob    PSWorkflowJob   Suspended   True            localhost   Get-SystemLog

Örnek 2: İş akışı işini askıya alma ve sürdürme

Bu örnekte bir iş akışı işini askıya alma ve sürdürme işlemi gösterilmektedir.

İlk komut LogWorkflowJob işini askıya alır. Komut hemen döndürür. Çıktı, askıya alınmış olsa bile iş akışı işinin çalışmaya devam ettiğini gösterir.

İkinci komut, LogWorkflowJob işini almak için Get-Job cmdlet'ini kullanır. Çıktı, iş akışı işinin başarıyla askıya alındığını gösterir.

Üçüncü komut, LogWorkflowJob işini almak için Get-Job cmdlet'ini ve sürdürmek için Resume-Job cmdlet'ini kullanır. Çıktı, iş akışı işinin başarıyla sürdürüldüğünü ve şimdi çalıştığını gösterir.

Suspend-Job -Name LogWorkflowJob

Id   Name          PSJobTypeName      State         HasMoreData     Location      Command
--   ----          -------------      -----         -----------     --------      -------
67   LogflowJob    PSWorkflowJob      Running       True            localhost     LogWorkflow

Get-Job -Name LogWorkflowJob

Id   Name          PSJobTypeName      State         HasMoreData     Location      Command
--   ----          -------------      -----         -----------     --------      -------
67   LogflowJob    PSWorkflowJob      Suspended     True            localhost     LogWorkflow

Get-Job -Name LogWorkflowJob | Resume-Job

Id     Name          PSJobTypeName      State       HasMoreData     Location      Command
--     ----          -------------      -----       -----------     --------      -------
67     LogflowJob    PSWorkflowJob      Running     True            localhost     LogWorkflow

Örnek 3: Uzak bilgisayarda iş akışı işini askıya alma

Invoke-Command -ComputerName Srv01 -ScriptBlock {Suspend-Job -Filter @{CustomID="031589"}

Bu komut, Srv01 uzak bilgisayarındaki bir iş akışı işini askıya almak için Invoke-Command cmdlet'ini kullanır. Filtresi parametresinin değeri, CustomID değerini belirten bir karma tablodur. Bu CustomID iş meta verileridir ( PSPrivateMetadata).

Örnek 4: İş akışı işinin askıya almasını bekleyin

Suspend-Job VersionCheck -Wait

Id     Name          PSJobTypeName      State         HasMoreData     Location      Command
--     ----          -------------      -----         -----------     --------      -------
 5     VersionCheck  PSWorkflowJob      Suspended     True            localhost     LogWorkflow

Bu komut VersionCheck iş akışı işini askıya alır. Komut, iş akışı işi askıya alınana kadar beklemek için Wait parametresini kullanır. İş akışı işi bir sonraki denetim noktasına çalıştırıldığında ve askıya alındığında, komut tamamlanır ve iş nesnesini döndürür.

Örnek 5: İş akışı işini askıya alma zorlama

Suspend-Job Maintenance -Force

Bu komut Bakım iş akışı işini zorla askıya alır. Bakım işinin denetim noktaları yok. Doğru şekilde askıya alınamaz ve doğru şekilde sürdürülmeyebilir.

Parametreler

-Confirm

Cmdlet'i çalıştırmadan ö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

Koşulların karma tablosunu belirtir. Bu cmdlet tüm koşulları karşılayan işleri askıya alır. Anahtarların iş özellikleri, değerlerin ise iş özelliği değerleri olduğu bir karma tablo girin.

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

-Force

İş akışı işini hemen askıya alır. Bu eylem durum ve veri kaybına neden olabilir.

varsayılan olarak, Suspend-Job iş akışı işinin sonraki denetim noktasına kadar çalışmasına izin verir ve sonra askıya alır. Denetim noktası olmayan iş akışı işlerini askıya almak için de bu parametreyi kullanabilirsiniz.

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

-Id

Bu cmdlet'in askıya alan işlerin kimliklerini belirtir.

Kimlik, geçerli oturumdaki işi benzersiz olarak tanımlayan bir tamsayıdır. Anımsamak ve yazmak örnek kimliğinden daha kolaydır, ancak yalnızca geçerli oturumda benzersizdir. Virgülle ayırarak bir veya daha fazla kimlik yazabilirsiniz. İşin kimliğini bulmak için Get-Job cmdlet'ini 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

Bu cmdlet'in askıya alması gereken 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 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

Bu cmdlet'in durdurduğunu iş akışı işlerini belirtir. İş akışı işlerini içeren bir değişken veya iş akışı işlerini alan bir komut girin. İş akışı işlerini Suspend-Job cmdlet'ine de yöneltebilirsiniz.

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

-Name

Bu cmdlet'in askıya aldırıldığı işlerin kolay adlarını belirtir. Bir veya daha fazla iş akışı işi adı girin. Joker karakterler desteklenir.

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

-State

bir iş durumu belirtir. Bu cmdlet yalnızca belirtilen durumdaki işleri durdurur. Bu parametre için kabul edilebilir değerler şunlardır:

  • Başlamadı
  • Koşarak
  • Tamamlandı
  • Başarısız
  • Durdu
  • Engellenmiş
  • Askıya
  • Bağlantısı kesilmiş
  • Askıya
  • Durdurma

Suspend-Job yalnızca Çalışıyor durumundaki iş akışı işlerini askıya alır.

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

Tür:JobState
Kabul edilen değerler:NotStarted, Running, Completed, Failed, Stopped, Blocked, Suspended, Disconnected, Suspending, Stopping, AtBreakpoint
Position:0
Default value:None
Gerekli:True
İşlem hattı girişini kabul et:True
Joker karakterleri kabul et:False

-Wait

Bu cmdlet'in, iş akışı işi askıya alınmış duruma gelene kadar komut istemini gizlediğini gösterir. varsayılan olarak, Suspend-Job iş akışı işi henüz askıya alınmış durumda olmasa bile hemen döndürür.

Wait parametresi, Suspend-Job cmdlet'ine bir Wait-Job komutu göndermeye eşdeğerdir.

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

-WhatIf

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

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

Tüm iş türlerini bu cmdlet'e yöneltebilirsiniz. Ancak, Suspend-Job desteklenmeyen türde bir iş alırsa, sonlandırıcı bir hata döndürür.

Çıkışlar

Job

Bu cmdlet, askıya alınan işleri döndürür.

Notlar

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

  • sujb

Askıya alınan işi kaydetme mekanizması ve konumu, iş türüne bağlı olarak değişebilir. Örneğin, askıya alınan iş akışı işleri varsayılan olarak düz bir dosya deposuna kaydedilir, ancak bir veritabanına da kaydedilebilir.

Çalışıyor durumunda olmayan bir iş akışı işi gönderirseniz Suspend-Job bir uyarı iletisi görüntüler. Uyarıyı bastırmak için WarningAction ortak parametresini SilentlyContinue değeriyle kullanın.

bir iş askıya alma desteği olan bir tür değilse, Suspend-Job sonlandırıcı bir hata döndürür.

Bu cmdlet tarafından askıya alınanlar da dahil olmak üzere askıya alınan iş akışı işlerini bulmak için, iş akışı işlerini Askıya Alındı durumunda almak için cmdlet'in Get-Job parametresini kullanın.

Bazı iş türleri, Windows PowerShell'in işi askıya almasını engelleyen seçeneklere veya özelliklere sahiptir. İşi askıya alma girişimleri başarısız olursa, iş seçeneklerinin ve özelliklerin askıya alma işlemine izin vediğini doğrulayın.