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í InlineScript
promě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