Bagikan melalui


Invoke-AsWorkflow

Menjalankan perintah atau ekspresi sebagai Alur Kerja Windows PowerShell.

Sintaks

Invoke-AsWorkflow
      [-CommandName <String>]
      [-Parameter <Hashtable>]
      [-InputObject <Object>]
      [<CommonParameters>]
Invoke-AsWorkflow
      [-Expression <String>]
      [-InputObject <Object>]
      [<CommonParameters>]

Deskripsi

Invoke-AsWorkflow Alur kerja menjalankan perintah atau ekspresi apa pun sebagai skrip sebaris dalam alur kerja. Alur kerja ini menggunakan semantik alur kerja standar, memiliki semua parameter umum alur kerja, dan memiliki semua manfaat alur kerja, termasuk kemampuan untuk menghentikan, melanjutkan, dan memulihkan.

Alur kerja dirancang untuk perintah jangka panjang yang mengumpulkan data penting, tetapi dapat digunakan untuk menjalankan perintah apa pun. Untuk informasi selengkapnya, lihat about_Workflows.

Anda juga dapat menambahkan parameter umum alur kerja ke perintah ini. Untuk informasi selengkapnya tentang parameter umum alur kerja, lihat about_WorkflowCommonParameters

Alur kerja ini diperkenalkan di Windows PowerShell 3.0.

Contoh

Contoh 1: Menjalankan cmdlet sebagai alur kerja

Invoke-AsWorkflow -PSComputerName (Get-Content Servers.txt) -CommandName Get-ExecutionPolicy

PSComputerName                     PSSourceJobInstanceId                   Value
--------------                     ---------------------                   -----
Server01                           77b1cdf8-8226-4662-9067-cd2fa5c3b711    AllSigned
Server02                           a33542d7-3cdd-4339-ab99-0e7cd8e59462    Unrestricted
Server03                           279bac28-066a-4646-9497-8fcdcfe9757e    AllSigned
localhost                          0d858009-2cc4-47a4-a2e0-da17dc2883d0    RemoteSigned

Perintah ini menjalankan Get-ExecutionPolicy cmdlet sebagai alur kerja pada ratusan komputer.

Perintah menggunakan parameter CommandName untuk menentukan cmdlet yang berjalan dalam alur kerja. Ini menggunakan parameter umum alur kerja PSComputerName untuk menentukan komputer tempat perintah dijalankan. Nilai parameter PSComputerName adalah Get-Content perintah yang mendapatkan daftar nama komputer dari file Servers.txt. Nilai parameter diapit dalam tanda kurung untuk mengarahkan Windows PowerShell untuk menjalankan Get-Command perintah sebelum menggunakan nilai .

Seperti semua perintah jarak jauh, jika perintah berjalan di komputer lokal, (jika nilai parameter PSComputerName menyertakan komputer lokal), Anda harus memulai Windows PowerShell dengan opsi "Jalankan sebagai administrator".

Contoh 2: Jalankan cmdlet dengan parameter

$s = Import-Csv .\Servers.csv -Header ServerName, ServerID
Invoke-AsWorkflow -CommandName Get-ExecutionPolicy -Parameter @{Scope="Process"} -PSComputerName {$s.ServerName} -PSConnectionRetryCount 5

Perintah pertama menggunakan Import-Csv cmdlet untuk membuat objek dari konten dalam file Servers.csv. Perintah menggunakan Header parameter untuk membuat ServerName properti untuk kolom yang berisi nama komputer target, juga dikenal sebagai "simpul jarak jauh." Perintah menyimpan hasil dalam $s variabel.

Perintah kedua menggunakan Invoke-AsWorkflow alur kerja untuk menjalankan Get-ExecutionPolicy perintah pada komputer dalam file Servers.csv. Perintah menggunakan parameter CommandName untuk Invoke-AsWorkflow menentukan perintah yang akan dijalankan dalam alur kerja. Ini menggunakan Parameter parameter Invoke-AsWorkflow untuk menentukan Scope parameter Get-ExecutionPolicy cmdlet dengan nilai Proses. Perintah ini juga menggunakan PSConnectionRetryCount parameter umum alur kerja untuk membatasi perintah hingga lima upaya pada setiap komputer dan PSComputerName parameter umum alur kerja untuk menentukan nama simpul jarak jauh (komputer target). Nilai PSComputerName parameter adalah ekspresi yang mendapatkan ServerName properti dari setiap objek dalam $s variabel.

Perintah ini menjalankan Get-ExecutionPolicy perintah sebagai alur kerja pada ratusan komputer. Perintah menggunakan Scope parameter Get-ExecutionPolicy cmdlet dengan nilai Proses untuk mendapatkan kebijakan eksekusi dalam sesi saat ini.

Contoh 3: Menjalankan ekspresi sebagai alur kerja

Invoke-AsWorkflow -Expression "ipconfig /all" -PSComputerName (Get-Content DomainControllers.txt) -AsJob -JobName IPConfig

Id     Name          PSJobTypeName   State         HasMoreData   Location                Command
--     ----          -------------   -----         -----------   --------                -------
2      IpConfig      PSWorkflowJob   Completed     True          Server01, Server01...   Invoke-AsWorkflow

Perintah ini menggunakan Invoke-AsWorkflow alur kerja untuk menjalankan perintah Ipconfig sebagai pekerjaan alur kerja pada komputer yang tercantum dalam file DomainControllers.txt.

Perintah menggunakan Expression parameter untuk menentukan ekspresi yang akan dijalankan. Ini menggunakan PSComputerName parameter umum alur kerja untuk menentukan nama simpul jarak jauh (komputer target).

Perintah ini juga menggunakan AsJob parameter umum alur kerja dan JobName untuk menjalankan alur kerja sebagai pekerjaan latar belakang di setiap komputer dengan nama pekerjaan "Ipconfig".

Perintah mengembalikan ContainerParentJob objek (System.Management.Automation.ContainerParentJob) yang berisi pekerjaan alur kerja di setiap komputer.

Parameter

-CommandName

Menjalankan cmdlet yang ditentukan atau fungsi tingkat lanjut sebagai alur kerja. Masukkan cmdlet atau nama fungsi, seperti Update-Help, , Set-ExecutionPolicyatau Set-NetFirewallRule.

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

-Expression

Menentukan ekspresi yang dijalankan cmdlet ini sebagai alur kerja. Masukkan ekspresi sebagai string, seperti "ipconfig /all". Jika ekspresi menyertakan spasi atau karakter khusus, sertakan ekspresi dalam tanda kutip.

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

-InputObject

Digunakan untuk mengizinkan input alur.

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

-Parameter

Menentukan parameter dan nilai parameter perintah yang ditentukan dalam CommandName parameter . Masukkan tabel hash di mana setiap kunci adalah nama parameter dan nilainya adalah nilai parameter, seperti @{ExecutionPolicy="AllSigned"}.

Untuk informasi tentang tabel hash, lihat about_Hash_Tables.

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

Input

Object

Anda dapat menyalurkan objek apa pun ke cmdlet ini.

Output

None

Perintah ini tidak mengembalikan outputnya sendiri, tetapi alur kerja yang dijalankannya mungkin mengembalikan output.