about_InlineScript
Deskripsi singkat
InlineScript
Menjelaskan aktivitas, yang menjalankan perintah PowerShell dalam alur kerja.
Deskripsi panjang
Aktivitas InlineScript
menjalankan perintah dalam alur kerja sesi PowerShell bersama.
InlineScript
hanya valid dalam alur kerja.
Sintaks
InlineScript {<script block>} <ActivityCommonParameters>
Deskripsi terperinci
Aktivitas InlineScript
menjalankan perintah dalam sesi PowerShell bersama. Anda dapat menyertakannya dalam alur kerja untuk menjalankan perintah yang berbagi data dan perintah yang tidak valid dalam alur kerja.
InlineScript
Blok skrip dapat menyertakan semua perintah dan ekspresi PowerShell yang valid. Karena perintah dan ekspresi dalam InlineScript
blok skrip berjalan dalam sesi yang sama, mereka berbagi semua status dan data, termasuk modul yang diimpor dan nilai variabel.
Anda dapat menempatkan InlineScript
aktivitas di mana saja dalam alur kerja atau alur kerja berlapis, termasuk di dalam pernyataan perulangan atau kontrol atau blok skrip Paralel atau Urutan.
Aktivitas InlineScript
ini memiliki parameter umum aktivitas, termasuk PSPersist. Namun, perintah dan ekspresi dalam InlineScript
blok skrip tidak memiliki fitur alur kerja seperti titik pemeriksaan, atau persistensi, dan alur kerja atau parameter umum aktivitas. Untuk informasi selengkapnya, lihat about_ActivityCommonParameters.
Variabel InlineScript
Secara default, variabel yang ditentukan dalam alur kerja tidak terlihat oleh perintah di InlineScript
blok skrip. Untuk membuat variabel alur kerja terlihat oleh InlineScript
, gunakan pengubah $Using
cakupan. Pengubah $Using
cakupan hanya diperlukan sekali untuk setiap variabel di InlineScript
.
Untuk informasi selengkapnya tentang pengubah $Using
cakupan, lihat about_Remote_Variables.
Contoh berikut menunjukkan bahwa pengubah $Using
cakupan membuat nilai $a
variabel alur kerja tingkat atas tersedia untuk perintah di InlineScript
blok skrip.
workflow Test-Workflow {
$a = 3
## Without $Using, the $a workflow variable isn't visible
## in inline script.
InlineScript {"Inline A0 = $a"}
## $Using imports the variable and its current value.
InlineScript {"Inline A1 = $Using:a"}
}
Test-Workflow
Inline A0 =
Inline A1 = 3
Mengembalikan variabel dalam InlineScript
InlineScript
perintah dapat mengubah nilai variabel yang diimpor dari cakupan alur kerja, tetapi perubahan tidak terlihat dalam cakupan alur kerja. Untuk membuatnya terlihat, kembalikan nilai yang diubah ke cakupan alur kerja, seperti yang diperlihatkan dalam contoh berikut.
workflow Test-Workflow {
$a = 3
## Changes to the InlineScript variable value don't
## change the workflow variable.
InlineScript {
$a = $Using:a+1;
"Inline A = $a"
}
"Workflow A = $a"
## To change the variable in workflow scope, return the
## new value.
$a = InlineScript {$b = $Using:a+1; $b}
"Workflow New A = $a"
}
Test-Workflow
Inline A = 4
Workflow A = 3
Workflow New A = 4
Catatan
Pernyataan dengan pengubah $Using
cakupan akan muncul sebelum penggunaan variabel apa pun di InlineScript
blok skrip.
Menjalankan dalam proses
Untuk meningkatkan keandalan, perintah dalam InlineScript
blok skrip berjalan dalam prosesnya sendiri, terpisah dari proses di mana alur kerja berjalan, lalu mengembalikan outputnya ke proses alur kerja.
Untuk mengarahkan PowerShell menjalankan InlineScript
aktivitas dalam proses alur kerja, hapus InlineScript
nilai dari properti OutOfProcessActivity dari konfigurasi sesi, seperti dengan menggunakan New-PSWorkflowExecutionOption
cmdlet.
Contoh
Dalam InlineScript
alur kerja berikut ini menyertakan perintah yang valid di PowerShell tetapi tidak valid dalam alur kerja. Misalnya, New-Object
cmdlet dengan parameter ComObject .
workflow Test-Workflow
{
$ie = InlineScript {
$ie = New-Object -ComObject InternetExplorer.Application -Property @{navigate2="www.microsoft.com"}
$ie.Visible = $true
}
$ie
}
Test-Workflow