Dela via


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 inlinescriptanvä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

Se även