about_InlineScript
Krótki opis
InlineScript
Opisuje działanie, które uruchamia polecenia programu PowerShell w przepływie pracy.
Długi opis
Działanie InlineScript
uruchamia polecenia w przepływie pracy udostępnionej sesji programu PowerShell. InlineScript
jest prawidłowy tylko w przepływach pracy.
Składnia
InlineScript {<script block>} <ActivityCommonParameters>
Szczegółowy opis
Działanie InlineScript
uruchamia polecenia w udostępnionej sesji programu PowerShell. Można go uwzględnić w przepływie pracy, aby uruchamiać polecenia, które udostępniają dane i polecenia, które nie są w inny sposób prawidłowe w przepływie pracy.
Blok InlineScript
skryptu może zawierać wszystkie prawidłowe polecenia i wyrażenia programu PowerShell. Ponieważ polecenia i wyrażenia w bloku skryptu są uruchamiane w InlineScript
tej samej sesji, współużytkują wszystkie stany i dane, w tym zaimportowane moduły i wartości zmiennych.
Działanie można umieścić InlineScript
w dowolnym miejscu w przepływie pracy lub zagnieżdżonym przepływie pracy, w tym wewnątrz pętli lub instrukcji kontrolki albo bloku skryptu równoległego lub sekwencyjnego.
Działanie InlineScript
ma typowe parametry działania, w tym PSPersist. Jednak polecenia i wyrażenia w InlineScript
bloku skryptu nie mają funkcji przepływu pracy, takich jak tworzenie punktów kontrolnych lub trwałość, a także typowe parametry przepływu pracy lub działania. Aby uzyskać więcej informacji, zobacz about_ActivityCommonParameters.
Zmienne inlineScript
Domyślnie zmienne zdefiniowane w przepływie pracy nie są widoczne dla poleceń w bloku skryptu InlineScript
. Aby uwidocznić zmienne przepływu pracy dla InlineScript
elementu , użyj $Using
modyfikatora zakresu. Modyfikator $Using
zakresu jest wymagany tylko raz dla każdej zmiennej w obiekcie InlineScript
.
Aby uzyskać więcej informacji na temat $Using
modyfikatora zakresu, zobacz about_Remote_Variables.
Poniższy przykład pokazuje, że modyfikator zakresu sprawia, że $Using
wartość $a
zmiennej przepływu pracy najwyższego poziomu jest dostępna dla poleceń w bloku skryptu InlineScript
.
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
Zwracanie zmiennych w języku InlineScript
InlineScript
Polecenia mogą zmieniać wartość zmiennej zaimportowanej z zakresu przepływu pracy, ale zmiany nie są widoczne w zakresie przepływu pracy. Aby były widoczne, zwróć zmienioną wartość do zakresu przepływu pracy, jak pokazano w poniższym przykładzie.
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
Uwaga
Przed użyciem zmiennej w bloku skryptu InlineScript
powinna zostać wyświetlona instrukcja z $Using
modyfikatorem zakresu.
Uruchamianie procesu
Aby zwiększyć niezawodność, polecenia w bloku skryptu InlineScript
są uruchamiane we własnym procesie, niezależnie od procesu, w którym jest uruchamiany przepływ pracy, a następnie zwracają dane wyjściowe do procesu przepływu pracy.
Aby skierować program PowerShell do uruchomienia InlineScript
działania w procesie przepływu pracy, usuń InlineScript
wartość z właściwości OutOfProcessActivity konfiguracji sesji, na przykład za pomocą New-PSWorkflowExecutionOption
polecenia cmdlet .
Przykład
W InlineScript
poniższym przepływie pracy znajdują się polecenia, które są prawidłowe w programie PowerShell, ale nie są prawidłowe w przepływach pracy. Na przykład New-Object
polecenie cmdlet z parametrem ComObject .
workflow Test-Workflow
{
$ie = InlineScript {
$ie = New-Object -ComObject InternetExplorer.Application -Property @{navigate2="www.microsoft.com"}
$ie.Visible = $true
}
$ie
}
Test-Workflow