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 můžete umístit InlineScript kdekoli v pracovním postupu nebo vnořeném pracovním postupu, včetně uvnitř smyčky nebo řídicího příkazu nebo bloku paralelního nebo sekvenčního 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é