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

Lihat juga