about_InlineScript
Kort beskrivning
Beskriver aktiviteten inlinescript
som kör PowerShell-kommandon i ett arbetsflöde.
Lång beskrivning
Aktiviteten inlinescript
kör kommandon i en delad PowerShell-session arbetsflöde.
inlinescript
är endast giltigt i arbetsflöden.
Syntax
inlinescript {<script block>} <ActivityCommonParameters>
Detaljerad beskrivning
Aktiviteten inlinescript
kör kommandon i en delad PowerShell-session. Du kan inkludera den i ett arbetsflöde för att köra kommandon som delar data och kommandon som annars inte är giltiga i ett arbetsflöde.
Skriptblocket inlinescript
kan innehålla alla giltiga PowerShell-kommandon och -uttryck. Eftersom kommandona och uttrycken i ett inlinescript
skriptblock körs i samma session delar de alla tillstånd och data, inklusive importerade moduler och variablernas värden.
Du kan placera en inlinescript
aktivitet var som helst i ett arbetsflöde eller kapslat arbetsflöde, inklusive i en loop eller kontrolluttryck eller ett parallel
eller sequence
skriptblock.
Aktiviteten inlinescript
har vanliga parametrar för aktiviteten, inklusive PSPersist. Kommandona och uttrycken i ett inlinescript
skriptblock har dock inte arbetsflödesfunktioner som kontrollpunkter eller beständighet och vanliga parametrar för arbetsflöde eller aktivitet. Mer information finns i about_ActivityCommonParameters.
InlineScript-variabler
Som standard är variablerna som definieras i ett arbetsflöde inte synliga för kommandona i skriptblocket inlinescript
. Om du vill göra arbetsflödesvariabler synliga för inlinescript
använder du omfångsmodifieraren Using:
. Omfångsmodifieraren Using:
krävs bara en gång för varje variabel i inlinescript
.
Mer information om omfångsmodifieraren Using:
finns i about_Remote_Variables.
I följande exempel visas att Using:
omfångsmodifieraren gör värdet för arbetsflödesvariabeln på den $a
översta nivån tillgängligt för kommandona i skriptblocket 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
Returnera variabler i InlineScript
inlinescript
kommandon kan ändra värdet för variabeln som importerades från arbetsflödesomfånget, men ändringarna visas inte i arbetsflödesomfånget. Om du vill göra dem synliga returnerar du det ändrade värdet till arbetsflödesomfånget, som du ser i följande exempel.
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
Kommentar
En instruktion med omfångsmodifieraren Using:
bör visas innan variabeln används i skriptblocket inlinescript
.
Körs i processen
För att förbättra tillförlitligheten körs kommandona i skriptblocket inlinescript
i sin egen process, åtskilda från den process där arbetsflödet körs och returnerar sedan utdata till arbetsflödesprocessen.
Om du vill dirigera PowerShell att köra inlinescript
aktiviteten i arbetsflödesprocessen tar du bort inlinescript
värdet från egenskapen OutOfProcessActivity för sessionskonfigurationen, till exempel med hjälp av cmdleten New-PSWorkflowExecutionOption
.
Exempel
I inlinescript
följande arbetsflöde finns kommandon som är giltiga i PowerShell men som inte är giltiga i arbetsflöden. Till exempel cmdleten New-Object
med parametern ComObject .
workflow Test-Workflow {
$ie = inlinescript {
$ie = New-Object -ComObject InternetExplorer.Application -Property @{navigate2="www.microsoft.com"}
$ie.Visible = $true
}
$ie
}
Test-Workflow