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-ExecutionPolicy
atau 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
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.