Sdílet prostřednictvím


about_InlineScript

Krátký popis

Popisuje inlinescript aktivitu, která spouští příkazy PowerShellu v pracovním postupu.

Dlouhý popis

Aktivita inlinescript spouští příkazy v pracovním postupu sdílené relace PowerShellu. inlinescript je platný pouze v pracovních postupech.

Syntaxe

inlinescript {<script block>} <ActivityCommonParameters>

Podrobný popis

Aktivita inlinescript spouští příkazy ve sdílené relaci PowerShellu. Můžete ho zahrnout do pracovního postupu a spouštět příkazy, které sdílejí data a příkazy, které nejsou v pracovním postupu jinak platné.

Blok inlinescript skriptu může obsahovat všechny platné příkazy a výrazy PowerShellu. Vzhledem k tomu, že příkazy a výrazy v bloku skriptu běží ve inlinescript stejné relaci, sdílejí všechny stavy a data, včetně importovaných modulů a hodnot proměnných.

Aktivitu inlinescript můžete umístit kdekoli v pracovním postupu nebo vnořeném pracovním postupu, včetně uvnitř smyčky nebo řídicího příkazu nebo parallel nebo sequence bloku skriptu.

Aktivita inlinescript má společné parametry aktivity, včetně PSPersist. Příkazy a výrazy v inlinescript bloku skriptu ale nemají funkce pracovního postupu, jako je vytváření kontrolních bodů nebo trvalost a běžné parametry pracovního postupu nebo aktivity. Další informace najdete v tématu about_ActivityCommonParameters.

Vložené proměnné jazykaScript

Ve výchozím nastavení nejsou proměnné definované v pracovním postupu viditelné pro příkazy v inlinescript bloku skriptu. K zobrazení inlinescriptproměnných pracovního postupu použijte Using: modifikátor oboru. Using: Modifikátor oboru je vyžadován pouze jednou pro každou proměnnou v objektu inlinescript.

Další informace o modifikátoru Using: oboru najdete v tématu about_Remote_Variables.

Následující příklad ukazuje, že Using: modifikátor oboru zpřístupňuje hodnotu $a proměnné pracovního postupu nejvyšší úrovně pro příkazy v inlinescript bloku skriptu.

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

Vrácení proměnných v inlineScriptu

inlinescript Příkazy můžou změnit hodnotu proměnné, která byla importována z oboru pracovního postupu, ale změny nejsou viditelné v oboru pracovního postupu. Pokud je chcete zobrazit, vraťte změněnou hodnotu do oboru pracovního postupu, jak je znázorněno v následujícím příkladu.

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

Poznámka:

Příkaz s modifikátorem Using: oboru by se měl zobrazit před použitím proměnné v inlinescript bloku skriptu.

Spuštění v procesu

Aby se zlepšila spolehlivost, příkazy v inlinescript bloku skriptu se spouští ve vlastním procesu, odděleně od procesu, ve kterém se pracovní postup spouští, a pak vrátí výstup do procesu pracovního postupu.

Pokud chcete nasměrovat PowerShell ke spuštění inlinescript aktivity v procesu pracovního postupu, odeberte inlinescript hodnotu z vlastnosti OutOfProcessActivity konfigurace relace, například pomocí rutiny New-PSWorkflowExecutionOption .

Příklad

Následující inlinescript pracovní postup obsahuje příkazy, které jsou platné v PowerShellu, ale nejsou platné v pracovních postupech. Například rutina New-Object s parametrem ComObject .

workflow Test-Workflow {
  $ie = inlinescript {
    $ie = New-Object -ComObject InternetExplorer.Application -Property @{navigate2="www.microsoft.com"}

    $ie.Visible = $true
  }

  $ie
}

Test-Workflow

Viz také