Bagikan melalui


Invoke-AsWorkflow

Menjalankan perintah atau ekspresi sebagai Alur Kerja Windows PowerShell.

Sintaks

Command (Default)

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

Expression

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

Deskripsi

Alur kerja Invoke-AsWorkflow 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 cmdlet Get-ExecutionPolicy 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 perintah yang mendapatkan daftar nama komputer dari file Servers.txt. Nilai parameter diapit dalam tanda kurung untuk mengarahkan Windows PowerShell untuk menjalankan perintah Get-Command 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 cmdlet Import-Csv untuk membuat objek dari konten dalam file Servers.csv. Perintah menggunakan parameter Header untuk membuat properti ServerName untuk kolom yang berisi nama komputer target, juga dikenal sebagai "simpul jarak jauh." Perintah menyimpan hasil dalam variabel $s.

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

Perintah ini menjalankan perintah Get-ExecutionPolicy sebagai alur kerja pada ratusan komputer. Perintah menggunakan parameter 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 alur kerja Invoke-AsWorkflow untuk menjalankan perintah Ipconfig sebagai pekerjaan alur kerja pada komputer yang tercantum dalam file DomainControllers.txt.

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

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

Perintah mengembalikan objek ContainerParentJob (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.

Properti parameter

Jenis:String
Nilai default:None
Mendukung wildcard:False
DontShow:False

Kumpulan parameter

Command
Position:Named
Wajib:False
Nilai dari alur:False
Nilai dari alur berdasarkan nama properti:False
Nilai dari argumen yang tersisa: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.

Properti parameter

Jenis:String
Nilai default:None
Mendukung wildcard:False
DontShow:False

Kumpulan parameter

Expression
Position:Named
Wajib:False
Nilai dari alur:False
Nilai dari alur berdasarkan nama properti:False
Nilai dari argumen yang tersisa:False

-InputObject

Digunakan untuk mengizinkan input alur.

Properti parameter

Jenis:Object
Nilai default:None
Mendukung wildcard:False
DontShow:False

Kumpulan parameter

(All)
Position:Named
Wajib:False
Nilai dari alur:True
Nilai dari alur berdasarkan nama properti:False
Nilai dari argumen yang tersisa:False

-Parameter

Menentukan parameter dan nilai parameter perintah yang ditentukan dalam parameter CommandName. 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.

Properti parameter

Jenis:Hashtable
Nilai default:None
Mendukung wildcard:False
DontShow:False

Kumpulan parameter

Command
Position:Named
Wajib:False
Nilai dari alur:False
Nilai dari alur berdasarkan nama properti:False
Nilai dari argumen yang tersisa:False

CommonParameters

Cmdlet ini mendukung parameter umum: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction, dan -WarningVariable. Untuk informasi selengkapnya, lihat about_CommonParameters.

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.