about_Workflows

Deskripsi singkat

Menyediakan pengenalan singkat untuk fitur Alur Kerja PowerShell.

Deskripsi panjang

Alur Kerja PowerShell membawa manfaat Windows Workflow Foundation ke PowerShell dan memungkinkan Anda menulis dan menjalankan alur kerja.

Alur Kerja PowerShell diperkenalkan di PowerShell 3.0 dan modul tersedia hingga PowerShell 5.1. Untuk informasi selengkapnya tentang Alur Kerja PowerShell, lihat Panduan Alur Kerja dan Menulis Alur Kerja Windows PowerShell.

Tentang alur kerja

Alur kerja adalah perintah yang terdiri dari urutan aktivitas terkait yang diurutkan. Biasanya, mereka berjalan untuk jangka waktu yang lama, mengumpulkan data dari dan membuat perubahan pada ratusan komputer, sering di lingkungan heterogen.

Alur kerja dapat ditulis dalam XAML, bahasa yang digunakan dalam Windows Workflow Foundation, atau dalam bahasa PowerShell. Alur kerja biasanya dipaketkan dalam modul dan menyertakan topik bantuan. Untuk informasi selengkapnya, lihat Gambaran Umum XAML (WPF).

Alur kerja sangat penting di lingkungan TI karena dapat bertahan dari boot ulang dan pulih secara otomatis dari kegagalan umum. Anda dapat memutuskan dan menyambungkan kembali dari sesi dan komputer yang menjalankan alur kerja tanpa mengganggu pemrosesan alur kerja, dan menangguhkan dan melanjutkan alur kerja secara transparan tanpa kehilangan data. Setiap aktivitas dalam alur kerja dapat dicatat dan diaudit untuk referensi. Alur kerja dapat berjalan sebagai pekerjaan dan dapat dijadwalkan dengan menggunakan fitur Pekerjaan Terjadwal PowerShell.

Status dan data dalam alur kerja disimpan atau disimpan di awal dan akhir alur kerja dan pada titik yang Anda tentukan. Titik persistensi alur kerja berfungsi seperti rekam jepret database atau titik pemeriksaan program untuk melindungi alur kerja dari efek gangguan dan kegagalan. Jika alur kerja tidak dapat pulih dari kegagalan, Anda dapat menggunakan data yang bertahan dan melanjutkan dari titik persistensi terakhir, alih-alih menjalankan ulang alur kerja yang luas dari awal.

Persyaratan dan konfigurasi alur kerja

Konfigurasi Alur Kerja PowerShell terdiri dari elemen berikut:

  • Komputer klien, yang menjalankan alur kerja.
  • Sesi alur kerja, PSSession, di komputer klien atau di komputer jarak jauh.
  • Simpul terkelola, komputer target yang terpengaruh oleh aktivitas alur kerja.

Sesi alur kerja tidak diperlukan, tetapi disarankan. PSSessions dapat memanfaatkan fitur pemulihan yang kuat dan Sesi Terputus dari PowerShell untuk memulihkan sesi alur kerja yang terputus. Untuk informasi selengkapnya, lihat about_Remote_Disconnected_Sessions

Karena komputer klien dan komputer tempat sesi alur kerja berjalan dapat dikelola simpul, Anda dapat menjalankan alur kerja pada satu komputer yang memenuhi semua peran.

Komputer klien dan komputer tempat sesi alur kerja berjalan harus menjalankan PowerShell 3.0. Semua sistem yang memenuhi syarat didukung, termasuk opsi penginstalan Server Core dari sistem operasi Windows Server.

Untuk menjalankan alur kerja yang menyertakan cmdlet, simpul terkelola harus memiliki Windows PowerShell 2.0 atau yang lebih baru. Simpul terkelola tidak memerlukan PowerShell kecuali alur kerja menyertakan cmdlet. Anda dapat menjalankan alur kerja yang menyertakan perintah Windows Management Instrumentation (WMI) dan Common Information Model (CIM) di komputer yang tidak memiliki PowerShell.

Cara mendapatkan alur kerja

Alur kerja biasanya dipaketkan dalam modul. Untuk mengimpor modul yang menyertakan alur kerja, gunakan perintah apa pun dalam modul atau gunakan Import-Module cmdlet. Modul diimpor secara otomatis pada penggunaan pertama perintah apa pun dalam modul.

Untuk menemukan alur kerja dalam modul yang diinstal di komputer Anda, gunakan Get-Command parameter CommandType cmdlet.

Get-Command -CommandType Workflow

Cara menjalankan alur kerja

Untuk menjalankan alur kerja, gunakan prosedur berikut.

  1. Ketika simpul terkelola adalah komputer lokal, langkah ini tidak diperlukan. Jika tidak, pada komputer klien, mulai PowerShell dengan opsi Jalankan sebagai administrator.

    Start-Process PowerShell -Verb RunAs
    
  2. Aktifkan PowerShell jarak jauh pada komputer yang menjalankan sesi alur kerja dan pada simpul terkelola yang dipengaruhi oleh alur kerja yang menyertakan cmdlet.

    Anda hanya perlu melakukan langkah ini sekali pada setiap komputer yang berpartisipasi.

    Langkah ini hanya diperlukan saat menjalankan alur kerja yang menyertakan cmdlet. Anda tidak perlu mengaktifkan jarak jauh di komputer klien, kecuali sesi alur kerja berjalan di komputer klien, atau pada simpul terkelola apa pun yang menjalankan PowerShell 3.0.

    Untuk mengaktifkan jarak jauh, gunakan Enable-PSRemoting cmdlet.

    Enable-PSRemoting -Force
    

    Anda dapat mengaktifkan jarak jauh dengan menggunakan pengaturan Aktifkan Kebijakan Grup Eksekusi Skrip. Untuk informasi selengkapnya, lihat about_Group_Policy_Pengaturan dan about_Execution_Policies.

  3. New-PSWorkflowSession Gunakan cmdlet atau New-PSSession untuk membuat sesi alur kerja.

    New-PSWorkflowSession Cmdlet memulai sesi yang menggunakan konfigurasi sesi Microsoft.PowerShell.Workflow bawaan di komputer tujuan. Konfigurasi sesi ini mencakup skrip, file jenis dan pemformatan, dan opsi yang dirancang untuk alur kerja.

    Atau, gunakan New-PSSession cmdlet. Gunakan parameter ConfigurationName untuk menentukan konfigurasi sesi Microsoft.PowerShell.Workflow. Perintah ini sama dengan menggunakan New-PSWorkflowSession cmdlet.

    Alternatifnya adalah menggunakan New-PSSession cmdlet. Gunakan parameter ConfigurationName untuk menentukan konfigurasi sesi Microsoft.PowerShell.Workflow.

    Pada komputer lokal:

    $ws = New-PSWorkflowSession
    

    Pada komputer jarak jauh:

    $ws = New-PSWorkflowSession -ComputerName Server01 `
    -Credential Domain01\Admin01
    

    Jika Anda adalah Administrator di komputer sesi alur kerja, Anda dapat menggunakan New-PSWorkflowExecutionOption cmdlet untuk membuat pengaturan opsi kustom untuk konfigurasi sesi alur kerja. Dan, gunakan Set-PSSessionConfiguration cmdlet untuk mengubah konfigurasi sesi.

    $sto = New-PSWorkflowExecutionOption -MaxConnectedSessions 150
    Invoke-Command -ComputerName Server01 `
    {Set-PSSessionConfiguration Microsoft.PowerShell.Workflow `
    -SessionTypeOption $Using:sto}
    $ws = New-PSWorkflowSession -ComputerName Server01 `
    -Credential Domain01\Admin01
    
  4. Jalankan alur kerja dalam sesi alur kerja. Untuk menentukan nama simpul terkelola, komputer target, gunakan parameter umum alur kerja PSComputerName .

    Contoh berikut menjalankan alur kerja bernama Test-Workflow.

    Di mana simpul terkelola adalah komputer yang menghosting sesi alur kerja:

    Invoke-Command -Session $ws {Test-Workflow}
    

    Di mana simpul terkelola adalah komputer jarak jauh.

    Invoke-Command -Session $ws{
    Test-Workflow -PSComputerName Server01, Server02 }
    

    Contoh berikut menjalankan Test-Workflow pada ratusan komputer. Get-Content Cmdlet mendapatkan nama komputer dari file teks dan menyimpannya dalam $Servers variabel di komputer lokal.

    Invoke-Command menggunakan pengubah $Using cakupan untuk menentukan $Servers variabel dalam sesi lokal. Untuk informasi selengkapnya tentang pengubah $Using cakupan, lihat about_Remote_Variables.

    $Servers = Get-Content Servers.txt
    Invoke-Command -Session $ws {Test-Workflow -PSComputerName $Using:Servers }
    

Menggunakan parameter umum alur kerja

Parameter umum alur kerja adalah sekumpulan parameter yang ditambahkan PowerShell secara otomatis ke semua alur kerja. PowerShell menambahkan parameter umum cmdlet ke semua alur kerja, meskipun alur kerja tidak menggunakan atribut CmdletBinding .

Misalnya, alur kerja berikut tidak menentukan parameter. Namun, saat Anda menjalankan alur kerja, alur kerja memiliki CommonParameters dan WorkflowCommonParameters.

workflow Test-Workflow {Get-Process}
Get-Command Test-Workflow -Syntax
Test-Workflow [<WorkflowCommonParameters>] [<CommonParameters>]

Parameter umum alur kerja mencakup beberapa parameter yang penting untuk menjalankan alur kerja. Misalnya, parameter umum PSComputerName menentukan simpul terkelola yang dipengaruhi alur kerja.

Invoke-Command -Session $ws {
  Test-Workflow -PSComputerName Server01, Server02
}

Parameter umum alur kerja PSPersist menentukan kapan data alur kerja dipertahankan. Ini memungkinkan Anda untuk menambahkan titik persistensi antara aktivitas ke alur kerja yang tidak menentukan titik persistensi.

Invoke-Command -Session $ws {
  Test-Workflow -PSComputerName Server01, Server02 -PSPersist:$True
}

Parameter umum alur kerja lainnya memungkinkan Anda menentukan karakteristik koneksi jarak jauh ke simpul terkelola. Nama dan fungsionalitasnya mirip dengan parameter cmdlet jarak jauh, termasuk Invoke-Command.

Invoke-Command -Session $ws {
  Test-Workflow -PSComputerName Server01, Server02 -PSPort 443
}

Berhati-hatilah untuk membedakan parameter jarak jauh yang menentukan koneksi untuk sesi alur kerja dari PS-prefixed parameter umum alur kerja yang menentukan koneksi ke simpul terkelola.

$ws = New-PSSession -ComputerName Server01 -ConfigurationName Microsoft.PowerShell.Workflow

Invoke-Command -Session $ws {
  Test-Workflow -PSComputerName Server01, Server02 -PSConfigurationName Microsoft.PowerShell.Workflow
}

Beberapa parameter umum alur kerja unik untuk alur kerja, seperti parameter PSParameterCollection yang memungkinkan Anda menentukan nilai parameter umum alur kerja yang berbeda untuk simpul jarak jauh yang berbeda. Untuk daftar dan deskripsi parameter umum alur kerja, lihat about_WorkflowCommonParameters.

Lihat juga