about_InlineScript

간단한 설명

워크플로에서 InlineScript PowerShell 명령을 실행하는 활동을 설명합니다.

자세한 설명

작업은 InlineScript 공유 PowerShell 세션의 워크플로에서 명령을 실행합니다. InlineScript 는 워크플로에서만 유효합니다.

구문

InlineScript {<script block>} <ActivityCommonParameters>

자세한 설명

작업은 InlineScript 공유 PowerShell 세션에서 명령을 실행합니다. 워크플로에 포함하면 워크플로에서 유효하지 않은 데이터 및 명령을 공유하는 명령을 실행할 수 있습니다.

스크립트 블록에는 InlineScript 유효한 모든 PowerShell 명령 및 식이 포함될 수 있습니다. 스크립트 블록의 명령과 식은 InlineScript 동일한 세션에서 실행되므로 가져온 모듈 및 변수 값을 포함하여 모든 상태와 데이터를 공유합니다.

루프 또는 제어 문 또는 병렬 또는 시퀀스 스크립트 블록 내부를 포함하여 워크플로 또는 중첩된 워크플로의 아무 곳에나 활동을 배치 InlineScript 할 수 있습니다.

활동에는 InlineScript PSPersist를 비롯한 활동 공통 매개 변수가 있습니다. 그러나 스크립트 블록의 명령 및 식 InlineScript 에는 검사포인트 지정, 지속성, 워크플로 또는 작업 일반 매개 변수와 같은 워크플로 기능이 없습니다. 자세한 내용은 about_ActivityCommonParameters 참조하세요.

InlineScript 변수

기본적으로 워크플로에 정의된 변수는 스크립트 블록의 명령에 InlineScript 표시되지 않습니다. 워크플로 변수를 표시하려면 InlineScript범위 한정자를 사용합니다 $Using . $Using 범위 한정자는 .의 InlineScript각 변수에 대해 한 번만 필요합니다.

범위 한정자에 $Using 대한 자세한 내용은 about_Remote_Variables 참조하세요.

다음 예제에서는 범위 한정자가 스크립트 블록의 명령에 사용할 수 있는 최상위 워크플로 변수의 $a 값을 만든다는 것을 InlineScript 보여 $Using 줍니다.

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

InlineScript에서 변수 반환

InlineScript 명령은 워크플로 범위에서 가져온 변수의 값을 변경할 수 있지만 변경 내용은 워크플로 범위에 표시되지 않습니다. 이러한 변수를 표시하려면 다음 예제에 표시된 대로 변경된 값을 워크플로 범위로 반환해야 합니다.

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

참고 항목

범위 한정자가 있는 $Using 문은 스크립트 블록에서 InlineScript 변수를 사용하기 전에 나타나야 합니다.

In-process 실행

안정성을 향상시키기 위해 스크립트 블록의 InlineScript 명령은 워크플로가 실행되는 프로세스와는 별도로 자체 프로세스에서 실행된 다음 해당 출력을 워크플로 프로세스로 반환합니다.

PowerShell이 워크플로 프로세스에서 작업을 실행 InlineScript 하도록 지시하려면 cmdlet 사용 New-PSWorkflowExecutionOption 과 같이 세션 구성의 OutOfProcessActivity 속성에서 값을 제거 InlineScript 합니다.

예시

InlineScript 다음 워크플로에는 PowerShell에서 유효하지만 워크플로에서는 유효하지 않은 명령이 포함되어 있습니다. 예를 들어 New-Object ComObject 매개 변수가 있는 cmdlet입니다.

workflow Test-Workflow
{
  $ie = InlineScript {
    $ie = New-Object -ComObject InternetExplorer.Application -Property @{navigate2="www.microsoft.com"}

    $ie.Visible = $true
  }

  $ie
}

Test-Workflow

참고 항목