Bagikan melalui


Suspend-Job

Menghentikan sementara pekerjaan alur kerja.

Sintaks

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

Deskripsi

Suspend-Job Cmdlet menangguhkan pekerjaan alur kerja. Menangguhkan berarti mengganggu atau menjeda pekerjaan alur kerja untuk sementara waktu. Cmdlet ini memungkinkan pengguna yang menjalankan alur kerja untuk menangguhkan alur kerja. Ini melengkapi aktivitas Suspend-Workflowhttps://go.microsoft.com/fwlink/?LinkId=267141 , yang merupakan perintah dalam alur kerja yang menangguhkan alur kerja.

Suspend-Job Cmdlet hanya berfungsi pada pekerjaan alur kerja. Ini tidak berfungsi pada pekerjaan latar belakang standar, seperti yang dimulai dengan menggunakan Start-Job cmdlet.

Untuk mengidentifikasi pekerjaan alur kerja, cari nilai PSWorkflowJob di properti PSJobTypeName pekerjaan. Untuk menentukan apakah jenis pekerjaan kustom tertentu mendukung Suspend-Job cmdlet, lihat topik bantuan untuk jenis pekerjaan kustom.

Saat Anda menangguhkan pekerjaan alur kerja, pekerjaan alur kerja berjalan ke titik pemeriksaan berikutnya, menangguhkan, dan segera mengembalikan objek pekerjaan alur kerja. Untuk menunggu penangguhan selesai sebelum mendapatkan pekerjaan, gunakan parameter Suspend-Job Tunggu atau Wait-Job cmdlet. Ketika pekerjaan alur kerja ditangguhkan, nilai properti Status pekerjaan ditangguhkan.

Menangguhkan dengan benar bergantung pada titik pemeriksaan. Status pekerjaan, metadata, dan output saat ini disimpan di titik pemeriksaan sehingga pekerjaan alur kerja dapat dilanjutkan tanpa kehilangan status atau data. Jika pekerjaan alur kerja tidak memiliki titik pemeriksaan, maka tidak dapat ditangguhkan dengan benar. Untuk menambahkan titik pemeriksaan ke alur kerja yang Anda jalankan, gunakan parameter umum alur kerja PSPersist . Anda dapat menggunakan parameter Paksa untuk segera menangguhkan pekerjaan alur kerja apa pun dan untuk menangguhkan pekerjaan alur kerja yang tidak memiliki titik pemeriksaan, tetapi tindakan tersebut dapat menyebabkan hilangnya status dan data.

Sebelum Anda menggunakan cmdlet Pekerjaan pada jenis pekerjaan kustom, seperti pekerjaan alur kerja (PSWorkflowJob) mengimpor modul yang mendukung jenis pekerjaan kustom, baik dengan menggunakan Import-Module cmdlet atau menggunakan atau menggunakan cmdlet dalam modul.

Cmdlet ini diperkenalkan di Windows PowerShell 3.0.

Contoh

Contoh 1: Menangguhkan pekerjaan alur kerja berdasarkan nama

Contoh ini menunjukkan cara menangguhkan pekerjaan alur kerja.

Perintah pertama membuat Get-SystemLog alur kerja. Alur kerja menggunakan CheckPoint-Workflow aktivitas untuk menentukan titik pemeriksaan dalam alur kerja.

Perintah kedua menggunakan parameter AsJob yang umum untuk semua alur kerja untuk menjalankan Get-SystemLog alur kerja sebagai pekerjaan latar belakang. Perintah menggunakan parameter umum alur kerja JobName untuk menentukan nama yang mudah diingat untuk pekerjaan alur kerja.

Perintah ketiga menggunakan Get-Job cmdlet untuk mendapatkan LogflowJob pekerjaan alur kerja. Output menunjukkan bahwa nilai properti PSJobTypeName adalah PSWorkflowJob.

Perintah keempat menggunakan Suspend-Job cmdlet untuk menangguhkan LogflowJob pekerjaan. Pekerjaan berjalan ke titik pemeriksaan dan kemudian menangguhkan.

#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

Contoh 2: Menangguhkan dan melanjutkan pekerjaan alur kerja

Contoh ini menunjukkan cara menangguhkan dan melanjutkan pekerjaan alur kerja.

Perintah pertama menangguhkan pekerjaan LogWorkflowJob. Perintah segera kembali. Output menunjukkan bahwa pekerjaan alur kerja masih berjalan, meskipun sedang ditangguhkan.

Perintah kedua menggunakan Get-Job cmdlet untuk mendapatkan pekerjaan LogWorkflowJob. Output menunjukkan bahwa pekerjaan alur kerja berhasil ditangguhkan.

Perintah ketiga menggunakan Get-Job cmdlet untuk mendapatkan pekerjaan LogWorkflowJob dan Resume-Job cmdlet untuk melanjutkannya. Output menunjukkan bahwa pekerjaan alur kerja berhasil dilanjutkan dan sekarang berjalan.

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

Contoh 3: Menangguhkan pekerjaan alur kerja di komputer jarak jauh

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

Perintah ini menggunakan Invoke-Command cmdlet untuk menangguhkan pekerjaan alur kerja pada komputer jarak jauh Srv01. Nilai parameter Filter adalah tabel hash yang menentukan nilai CustomID. CustomID ini adalah metadata pekerjaan (PSPrivateMetadata).

Contoh 4: Tunggu pekerjaan alur kerja ditangguhkan

Suspend-Job VersionCheck -Wait

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

Perintah ini menangguhkan pekerjaan alur kerja VersionCheck. Perintah menggunakan parameter Tunggu untuk menunggu hingga pekerjaan alur kerja ditangguhkan. Ketika pekerjaan alur kerja berjalan ke titik pemeriksaan berikutnya dan ditangguhkan, perintah selesai dan mengembalikan objek pekerjaan.

Contoh 5: Paksa pekerjaan alur kerja untuk ditangguhkan

Suspend-Job Maintenance -Force

Perintah ini menangguhkan pekerjaan alur kerja Pemeliharaan secara paksa. Pekerjaan Pemeliharaan tidak memiliki titik pemeriksaan. Ini tidak dapat ditangguhkan dengan benar dan mungkin tidak dilanjutkan dengan benar.

Parameter

-Confirm

Meminta Anda mengonfirmasi sebelum menjalankan cmdlet.

Jenis:SwitchParameter
Alias:cf
Position:Named
Nilai default:False
Diperlukan:False
Terima input alur:False
Terima karakter wildcard:False

-Filter

Menentukan tabel kondisi hash. Cmdlet ini menangguhkan pekerjaan yang memenuhi semua kondisi. Masukkan tabel hash di mana kunci adalah properti pekerjaan dan nilainya adalah nilai properti pekerjaan.

Jenis:Hashtable
Position:0
Nilai default:None
Diperlukan:True
Terima input alur:True
Terima karakter wildcard:False

-Force

Menangguhkan pekerjaan alur kerja segera. Tindakan ini dapat menyebabkan hilangnya status dan data.

Secara default, Suspend-Job memungkinkan pekerjaan alur kerja berjalan hingga titik pemeriksaan berikutnya lalu menangguhkannya. Anda juga dapat menggunakan parameter ini untuk menangguhkan pekerjaan alur kerja yang tidak memiliki titik pemeriksaan.

Jenis:SwitchParameter
Alias:F
Position:Named
Nilai default:None
Diperlukan:False
Terima input alur:False
Terima karakter wildcard:False

-Id

Menentukan ID pekerjaan yang ditangguhkan cmdlet ini.

ID adalah bilangan bulat yang secara unik mengidentifikasi pekerjaan dalam sesi saat ini. Lebih mudah diingat dan dititik daripada ID instans, tetapi hanya unik dalam sesi saat ini. Anda dapat mengetik satu atau beberapa ID, dipisahkan oleh koma. Untuk menemukan ID pekerjaan, gunakan Get-Job cmdlet .

Jenis:Int32[]
Position:0
Nilai default:None
Diperlukan:True
Terima input alur:True
Terima karakter wildcard:False

-InstanceId

Menentukan ID instans pekerjaan yang ditangguhkan cmdlet ini. Defaultnya adalah semua pekerjaan.

ID instans adalah GUID yang secara unik mengidentifikasi pekerjaan di komputer. Untuk menemukan ID instans pekerjaan, gunakan Get-Job.

Jenis:Guid[]
Position:0
Nilai default:None
Diperlukan:True
Terima input alur:True
Terima karakter wildcard:False

-Job

Menentukan pekerjaan alur kerja yang dihentikan cmdlet ini. Masukkan variabel yang berisi pekerjaan alur kerja atau perintah yang mendapatkan pekerjaan alur kerja. Anda juga dapat menyalurkan pekerjaan alur kerja ke Suspend-Job cmdlet.

Jenis:Job[]
Position:0
Nilai default:None
Diperlukan:True
Terima input alur:True
Terima karakter wildcard:False

-Name

Menentukan nama pekerjaan yang ramah yang ditangguhkan cmdlet ini. Masukkan satu atau beberapa nama pekerjaan alur kerja. Karakter kartubebas didukung.

Jenis:String[]
Position:0
Nilai default:None
Diperlukan:True
Terima input alur:True
Terima karakter wildcard:False

-State

Menentukan status pekerjaan. Cmdlet ini hanya menghentikan pekerjaan dalam status yang ditentukan. Nilai yang dapat diterima untuk parameter ini adalah:

  • Belum Dimulai
  • Sedang berjalan
  • Selesai
  • Gagal
  • Dihentikan
  • Terblokir
  • Ditangguhkan
  • Terputus
  • Menangguhkan
  • Menghentikan

Suspend-Job menangguhkan hanya pekerjaan alur kerja dalam status Berjalan .

Untuk informasi selengkapnya tentang status pekerjaan, lihat Enumerasi JobState.

Jenis:JobState
Nilai yang diterima:NotStarted, Running, Completed, Failed, Stopped, Blocked, Suspended, Disconnected, Suspending, Stopping, AtBreakpoint
Position:0
Nilai default:None
Diperlukan:True
Terima input alur:True
Terima karakter wildcard:False

-Wait

Menunjukkan bahwa cmdlet ini menekan prompt perintah hingga pekerjaan alur kerja dalam status ditangguhkan. Secara default, Suspend-Job segera dikembalikan, bahkan jika pekerjaan alur kerja belum dalam status ditangguhkan.

Parameter Tunggu setara dengan pipa Suspend-Job perintah ke Wait-Job cmdlet.

Jenis:SwitchParameter
Position:Named
Nilai default:None
Diperlukan:False
Terima input alur:False
Terima karakter wildcard:False

-WhatIf

Menunjukkan apa yang akan terjadi jika cmdlet berjalan. Cmdlet tidak dijalankan.

Jenis:SwitchParameter
Alias:wi
Position:Named
Nilai default:False
Diperlukan:False
Terima input alur:False
Terima karakter wildcard:False

Input

Job

Anda dapat menyalurkan semua jenis pekerjaan ke cmdlet ini. Namun, jika Suspend-Job mendapatkan pekerjaan dari jenis yang tidak didukung, itu mengembalikan kesalahan yang mengakhiri.

Output

Job

Cmdlet ini mengembalikan pekerjaan yang ditangguhkan.

Catatan

Windows PowerShell menyertakan alias berikut untuk Suspend-Job:

  • sujb

Mekanisme dan lokasi untuk menyimpan pekerjaan yang ditangguhkan mungkin bervariasi tergantung pada jenis pekerjaan. Misalnya, pekerjaan alur kerja yang ditangguhkan disimpan di penyimpanan file datar secara default, tetapi juga dapat disimpan dalam database.

Jika Anda mengirimkan pekerjaan alur kerja yang tidak dalam status Berjalan, Suspend-Job menampilkan pesan peringatan. Untuk menekan peringatan, gunakan parameter umum WarningAction dengan nilai SilentlyContinue.

Jika pekerjaan bukan jenis yang mendukung penangguhan, Suspend-Job mengembalikan kesalahan yang mengakhiri.

Untuk menemukan pekerjaan alur kerja yang ditangguhkan, termasuk yang ditangguhkan oleh cmdlet ini, gunakan parameter Get-Job Status cmdlet untuk mendapatkan pekerjaan alur kerja dalam status Ditangguhkan.

Beberapa jenis pekerjaan memiliki opsi atau properti yang mencegah Windows PowerShell menangguhkan pekerjaan. Jika upaya untuk menangguhkan pekerjaan gagal, verifikasi bahwa opsi pekerjaan dan properti memungkinkan penangguhan.